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

  • From: "Till Schneidereit" <zooey@xxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Thu, 31 Oct 2002 12:58:41 +0100

hi alex,

du hast recht mit delete statt splice. um genau zu sein, funktioniert
letzteres sogar gar nicht, da dann ja alle höher liegenden einträge nach
unten rutschen und die array-position nicht mehr wirklich die tiefe des
clips wiedergibt.
leider wird das problem der zwischen zwei alten clips eingefügten neuen
clips damit nicht gelöst, da im array ja ein eintrag frei ist, der dann
von der funktion gefüllt wird... sollte aber bei den wenigsten
anwendungen stören. wenn es wirklich benötigt wird, kann man ja immer
noch die remove-funktion so erweitern, daß sie alle direkt folgenden
clips eine ebene tiefer legt.

>Dazu müsste man die Tiefe ja schon vorher wissen.
das ist ja gerade sinn der sache! wenn du einen clip definitiv auf eine
ganz bestimmte ebene legen willst und einen evtl. vorhandenen ersetzen
willst, weißt du die tiefe ja auf jeden fall.
damit kannst du die _tiefe-property direkt nach dem attachen setzen:

//<beispiel>
zieltiefe = 10;
_root.attachClip("ball", "ball1", zieltiefe);
_root.ball1._tiefe = zieltiefe;
//</beispiel>

>Schließlich müsste das der User wissen.
der user muß jua sowieso wissen, daß der attachMove-befehl sich etwas
anders verhält, also sollte ein weiterer parameter oder das nutzen der
originalfunktion sowieso gut dokumentiert sein..

gruß,
till



-----Ursprüngliche Nachricht-----
Von: ascoders-bounce@xxxxxxxxxxxxx
[mailto:ascoders-bounce@xxxxxxxxxxxxx] Im Auftrag von Alex Uhlmann
Gesendet: Donnerstag, 31. Oktober 2002 12:09
An: ascoders@xxxxxxxxxxxxx
Betreff: [ascoders] AW: AW: AW: AW: FL5: _depth


Till,

hey klasse Veränderungen. Das mit removeMovieClip klappt. Ich würde
allerdings statt

this._parent.tiefen.splice(this._tiefe, 1);

delete this._parent.tiefen [this._tiefe];

nehmen. Splice füllt den gesamten Array unötig mit undefined auf.

damit wird auch der eintrag im array gelöscht, wobei das problem ist,
daß ein neuer clip damit zwischen zwei alten eingefügt werden könnte und
damit nicht mehr als oberstes zu sehen ist. im vorliegenden beispiel
würde ein weiterer clip mit tiefenangabe 10 zwischen b1 und b3 eingefügt
werden.

>mit delete dürfte das nicht passieren.

ein weiteres problem ist, daß es mit diesem code nicht mehr möglich ist,
einen schon vorhandenen clip gezielt zu ersetzen. dazu müßte ein
weiterer parameter eingeführt werden, der das ermöglicht. problem dabei
ist, daß attachMovie ja noch den weiteren parameter unterstützt
(activationObject). um den parameter zum überschreiben zu benutzen,
müßte er also noch nach das activationObject gesetzt werden, selbst wenn
keins übergeben werden soll. ein aufruf könnte dann so aussehen:
_root.attachMovie("b", "b1", {}, true);

>*g* ...gute Idee... Geht mir aber ein bisschen zu weit. Schließlich
müsste das der User wissen. ):

eine viel einfachere lösung ist eigentlich, den original-attach befehl
zu benutzen und dann den _tiefe-parameter manuell zu setzen.
beispiel:
_root.attachClip("b", "b1", 10);
_root.b1._tiefe=10;

>Dazu müsste man die Tiefe ja schon vorher wissen. Schön wäre ja das
hier:

_root.ball1._tiefe = _root.attachClip("ball","ball1",10);

_tiefe wird anscheinend hier durch das spätere attachMovie
überschrieben.

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: