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

  • From: "Till Schneidereit" <zooey@xxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Fri, 1 Nov 2002 21:46:34 +0100

hi alex,
ich denke, damit sollte alles ok sein, scheint auch bei mir problemlos
zu funktionieren..
wird gleich in meiner prototypes-library gespeichert, ist vielleicht ja
auch was für die ASL (http://sourceforge.net/projects/fasl/ falls du
noch nicht davon gehört hast).
gut, daß du den code nochmal auf englisch übersetzt hast, ich weiß gar
nicht, warum ich mit deutschen funktionsnamen angefangen habe..
vermutlich wegen der ungewohnten deutschen mailingliste..

gruß,
till

-----Original Message-----
From: ascoders-bounce@xxxxxxxxxxxxx
[mailto:ascoders-bounce@xxxxxxxxxxxxx] On Behalf Of Alex Uhlmann
Sent: Friday, November 01, 2002 11:05 AM
To: ascoders@xxxxxxxxxxxxx
Subject: [ascoders] AW: AW: AW: AW: AW: AW: FL5: _depth


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
------------------------------------------------------

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

Other related posts: