[ascoders] AW: AW: AW: AW: AW: AW: FL5: _depth

  • From: "Alex Uhlmann" <mail@xxxxxxxxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Fri, 1 Nov 2002 15:26:02 +0100

Hi Till,

Super Vorschlag noch eine attachToDepth Methode zu benutzen.
Funktioniert ohne Problem. Ich konnte zumindest keine Bugs entdecken. (:
Das Problem mit der falschen Reihenfolge der Clips sehe ich auch nicht
sehr problematisch. Kommt natürlich auch auf das Projekt an. Die Lösung
dazu mit den Lücken füllen, ist allerdings auch nicht ganz
unprobelmatisch. Wenn man beim removeMovieClip() versucht alle Lücken zu
schließen, verändert man evtl. auch die Tiefe von Clips die mit
attachToDepth() auf eine bestimmte Ebene attached wurden. Der User geht
davon aus, dass durch seine attachToDepth Methode, die Clips auf einer
bestimmten Ebene auch bleiben. OK. Er hätte die _depth Eigenschaft, die
er abfragen könnte.

Hier noch mal alles zusammengefasst. Habe ich was vergessen?


//save original attachMovie in attachClip.
MovieClip.prototype.attachClip = MovieClip.prototype.attachMovie;
//store every mc and depth in depthArr. 
//every object that contains attached elements has its own depthArr. 
MovieClip.prototype.attachMovie = function(id,newname,depth)
{
        if(typeof(this.depthsArr)!="object")
        {
                this.depthsArr = new Array();
        }
        while(true)
        {               
                if(typeof(this.depthsArr[depth])=="movieclip")
                {                               
                        depth++;
                }
                else
                {
                        break;
                }
        }       
        this.attachClip(id,newname,depth);
        this.depthsArr[depth] = this[newname];
        this[newname]._depth = depth;   
        return this[newname];
}
//attach to specific depth and replace existing content. 
MovieClip.prototype.attachToDepth = function(id,newname,depth) {
        this.attachClip(id,newname,depth);
        this.depthsArr[depth]=this[newname];
        this[newname]._depth = depth;
        return this[newname];
}
//save original removeMovieClip in removeClip.
MovieClip.prototype.removeClip = MovieClip.prototype.removeMovieClip;
//change depthArr when removing attached element.
MovieClip.prototype.removeMovieClip = function() {
        delete this._parent.depthsArr[this._depth];     
        this.removeClip();
}




trace(_root.attachMovie("ball","ball1",10));
trace(_root.attachMovie("b","b1",10));
b1._x = 40;
trace(_root.attachMovie("b","b2",10));
b2._y = 0;
_root.b2.removeMovieClip();
trace(_root.attachMovie("b","b2",10));
b2._y = 40;
trace(_root.attachMovie("b","b3",10));
b3._x = 90;

trace(_root.attachToDepth("b","b4",10));
b4._y = 70;





Gruß
Alex

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: