ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
2165
2165
EMPFEHLEN
-
Hallo,
mit dieser Funktion kann die Tiefensortierung einer Anzahl MovieClips indirekt festgelegt werden. So ist es z.B. möglich, bei dynamischen Größenänderungen größere Clips in den Vordergrund zu holen oder die Stapelungsreihenfolge in einer Pseudo-isometrischen Darstellung festzulegen.
Die betreffenden MovieClips werden der Methode in einem Array übergeben; die Tiefenebenen werden anhand der Position im Array festgelegt:Code actionscript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
function sortDepths(siblings) { function siblSorted(arr) { var a = arr; var ok = true; for (var i=0; i<a.length - 1; i++) { if (a[i].getDepth() > a[i + 1].getDepth()) { ok = false; break; } } return ok; } var d = 0; while (!siblSorted(siblings) && d < siblings.length * 2) { d ++; for (var i=0; i<siblings.length - 1; i++) { var f1 = siblings[i]; var f2 = siblings[i + 1]; if (f1.getDepth() > f2.getDepth()) { f1.swapDepths(f2); } } } }
Da die Position im Array entscheidend ist, muss das Array ggf. nach einem bestimmten Kriterium sortiert werden - dazu kann z.B. die sort-Methode in Verbindung mit einer Vergleichsfunktion dienen:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// [COLOR="DarkRed"][B]4 MovieClips anhand ihrer vertikalen Position (_y-Eigenschaft) in der Tiefe anordnen:[/B][/COLOR] var clips = new Array(mc1, mc2, mc3, mc4); // Clips in einem Array aufnehmen clips.sort(byY); // Array nach y-Position sortieren sortDepths(clips); // Tiefenebenen festlegen function byY(a, b) { // Vergleichsfunktion if (a._y > b._y) { return 1; } else if (a._y < b._y) { return -1; } else { return 0; } }
Grüße,
Tobi
.
-
Ahoi Matze...
ich bin mit meinem Latein am Ende. Du scheinst ja da gut durchzusehen.
Ich habe auf einer Bühne 10 Movieclips attacht, wobei es sich immer um den gleichen Movieclip handelt der aber eine fortlaufende Nummer angehängt bekommt.
Über this.bg.getNextHighestDepth() werden die Clips in Ihrer Tiefe angeordnet. Sie skalieren sich, je größer ihr _y Wert, um so größer werden sie.
Soweit kommste ja mit.
Nur bekomme ich es nicht gebacken, das die Clips sich auch so in der Tiefe verhalten. Der Movieclip mit dem höchsten _y Wert sollte auch vor den jeweiligen anderen MCs sein. Jeder Movieclip fragt am Besten seine Tiefe ab und korrigiert sie anhanf seines _y Wertes.
Mein Ansatz:
for (var i=1; i<10; i++)
{
if(this._y >= _root["andere Mcs"+i]._y)
{
this._parent.swapDepths(_root.getNextHighestDepth());
}
}
Liebe Grü0e
Ennobee
Ähnliche Themen
-
Movieclips im Flash Dokument abspielen lassen?
Von Xander im Forum Flash PlattformAntworten: 4Letzter Beitrag: 04.03.07, 11:33 -
[Flash 8] Sättigung und Helligkeit eines MovieClips
Von luke_the_duke im Forum Flash FAQAntworten: 0Letzter Beitrag: 21.02.07, 09:49 -
Flash und movieclips austauschen
Von notebook20000 im Forum Flash PlattformAntworten: 1Letzter Beitrag: 09.04.05, 21:58 -
Movieclips in Flash - Wie? - Help Plz
Von Veit Aaron im Forum Flash PlattformAntworten: 1Letzter Beitrag: 26.11.04, 15:37 -
flash mx - movieclips nacheinander
Von BieneMaja im Forum Flash PlattformAntworten: 4Letzter Beitrag: 10.11.02, 23:04





Zitieren
Login





