blog.skurrilewelt - SDepthManager - AS2.0 Klasse - SDepthManager - AS2.0 Klasse

23.07.2008 - SDepthManager - AS2.0 Klasse

Nach vielen Versuchen mit der in Flash 8 eingebauten DepthManager-Klasse klar zu kommen, habe ich wie viele andere auch, etwas eigenes gebaut. Einige Tiefenverwaltungen sind ja im Netz als Prototypen oder AS 2.0-Klassen zu finden aber nichts entsprach meinen Vorstellungen.

Hier stelle ich jetzt die SDepthManager-Klasse vor, die die Tiefenverwaltung aller in einem Movie dynamisch erzeugten Clips erledigt. Beginnend mit einer Instanz in _root werden in jedem Clip eigene Instanzen von SDepthManager erzeugt, die immer sozusagen rekursiv aufgerufen werden. Der Vorteil an dieser Konstruktion ist, dass jeder 'Zweig' des MovieClips eine eigene Tiefenverwaltung hat, die trotzdem zentral angesprochen werden kann. In diesem kleinen Beispielfilm demonstriere ich die Arbeitsweise:

Instanziert wird so:


import skurrile.SDepthManager;

var dm = new SDepthManager(_root);


Die SDepthManager-Klasse:

SDepthManager-Funktion

SDepthManager(path:MovieClip)

Konstruktor der Klasse. Erstellt die Instanz der Klasse und macht den angegebenen MovieClip zur Basis.

createChildClip-Funktion

createChildClip(path:MovieClip,name:String):MovieClip 

Erstellt im angegebenen MovieClip einen neuen leeren MovieClip mit dem angegebenen Namen, vergibt automatisch die nächsthöhere Tiefe und gibt einen Verweis auf den neu erzeugten Clip zurück. 

createChildClassObject-Funktion

createChildClassObject(path:MovieClip,name:String,classObject:Object,initObject:Object):MovieClip 

Erstellt im angegebenen MovieClip ein neues Klassenobjekt der angegebenen Klasse mit dem angegebenen Namen, vergibt automatisch die nächsthöhere Tiefe und gibt einen Verweis auf den neu erzeugten Clip zurück. Das Initialisierungsobjekt wird an die erzeugte Klasseninstanz weiter gegeben.

toTop-Funktion

toTop(clip:MovieClip):Void

Setzt den angegebenen Clip in der Hierachie ganz nach oben. Der ursprünglich oberste Clip tauscht seinen Platz.

removeMovieClip-Funktion

removeMovieClip(clip:MovieClip):Boolean

Löscht den angegebenen Clip aus der Hierachie. Löscht auch ohne Nachfrage alle enthaltenen Clips und deren SDepthManager. Bei Erfolg gibt die Funktion true zurück.

dCursor-Funktion

dCursor():Number

Gibt die voreingestellte Tiefe für einen benutzerdefienierten Cursor-Clip zurück. dCursor sollte immer die höchstmögliche Ebene für MovieClips erhalten, damit der Cursor immer im Vordergrund liegt.

dTooltip-Funktion

dTooltip():Number

Gibt die voreingestellte Tiefe für einen benutzerdefienierten Tooltip-Clip zurück. Die Tiefe liegt eine Stufe unter dCursor.

traceArray-Funktion

traceArray(d:String):String

Rekursive Funktion die den ganzen MovieClip-Baum abbildet und als String zurück gibt. Parameter d ist ein Präfixzeichen um die unterschiedlichen Verzweigungen optisch besser abzugrenzen.

 

Alle Funktionen werden im Beispielfilm genutzt und erklären sich damit selber. Die Klasse ist leicht erweiterbar um Funktionen wie setToDepth oder attachMovie.

SDepthManager.zip 223.07 KB

 

Powered by Etomite CMS.