tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
2165
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    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
    .
     

  2. #2
    ennobee ennobee ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    1
    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
    Angehängte Dateien Angehängte Dateien
     

Ähnliche Themen

  1. Movieclips im Flash Dokument abspielen lassen?
    Von Xander im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 04.03.07, 11:33
  2. [Flash 8] Sättigung und Helligkeit eines MovieClips
    Von luke_the_duke im Forum Flash FAQ
    Antworten: 0
    Letzter Beitrag: 21.02.07, 09:49
  3. Flash und movieclips austauschen
    Von notebook20000 im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 09.04.05, 21:58
  4. Movieclips in Flash - Wie? - Help Plz
    Von Veit Aaron im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 26.11.04, 15:37
  5. flash mx - movieclips nacheinander
    Von BieneMaja im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 10.11.02, 23:04