ActionScript 2, Liste der verschachtelten movieclips
hat schon mal jemand versucht, die Liste aller movieclips (auch verschachtelt), die auf der Bühne eine angegebene gestoppt (und aktuelle) - frame in Flash 8, AS 2?
Habe ich Folgendes:
for(i in _root){
if(typeof(_root[i])=="movieclip"){
trace(_root[i]);}
}
Aber das ist gut für eine erste Ebene suchen: das ist, wenn Sie innerhalb des movieclips, Sie haben andere movieclips, Sie können Sie nicht erreichen. Außerdem, innerhalb eines movieclip-es können mehr sein dann ein movieclip.
Hat schon mal jemand versucht, das zu tun, was ich versuche zu tun?
Bye!
InformationsquelleAutor | 2009-01-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nur versuchen zu verfolgen? Wenn ja, es gibt eine nette kleine undokumentierte Dienstprogramm namens ObjectDumper, die das können.
Dies ist wahrscheinlich die beste Erklärung die es gibt
Also, was Sie tun können, ist dies:
Möglicherweise gibt es eine Menge extras (Funktionen, Variablen, etc) gibt, so gibt es zusätzliche Parameter, die Sie verwenden können:
Wenn die ObjectDumper.als code ist das elegancia2.com/TestSite/mx/data/binding/ObjectDumper.as ich bin nicht sicher, es arbeitet mit movieclips.
du hast Recht, ich habe gerade ein schnelles kleines experiment mit ihm, und es ist nicht die Auflistung der Videoclips. Ich denke, deine einzige option ist eine rekursive Funktion. Oder wenn Sie die Kontrolle haben, wenn Sie die clips platziert werden, platzieren Sie die einzelnen Clips in ein array, wenn es geht auf die Bühne, dann in einer Schleife durch das array und stoppen.
Ich habe keine wirkliche Kontrolle: Sie geben mir kompilierte swf made by third party content-Entwickler und ich sollte die Kontrolle über alle timelines von allen movieclips auf der currentframe mit dem Haupt-videorecorder-Befehle.
Link ist nicht mehr verfügbar.
InformationsquelleAutor nerdabilly
genau so, wie vorgeschlagen, durch inkedmn
printStuff zuerst überprüft, um zu sehen, ob der Wert, den es findet ein mc dann, wenn es, Spuren und prüft dann im inneren für mehr mcs.
oh....und sorry für ein Jahr und einige Veränderungen spät...
InformationsquelleAutor Steffen
Können Sie etwas tun, dass durch das hinzufügen einer Funktion zur MovieClip-Klasse:
Das Letzte bit ASSetPropFlags ist etwas, das ich gefunden, dass ermöglicht StopEverything Durchlaufen built-in-Klassen wie MovieClip mit der for..in-für jedes Feld, auch versteckte Eigenschaften und Elemente. Ohne ASSetPropFlags, StopEverything() kann nicht auf jedem enthaltenen Film-clip.
InformationsquelleAutor Aaron
Meine AS2 Erfahrung ist sehr begrenzt (ich habe getan, bisschen AS3), aber hier geht:
Was ist, wenn Sie schrieb eine rekursive Funktion, die, wenn Sie auftreten, wird ein movieclip, würde Blick durch alle seine untergeordneten Objekte für andere Film-clips (und Tat das gleiche für alle Videoclips, die es gibt, etc.)? Die Funktion übernehmen könnte-Objekt parameter sowie ein array von "gefunden" - clips Hinzugefügt wird, bei jedem Durchlauf.
Ich wünschte, ich könnte schreiben den code, dies zu tun wäre, aber (wie gesagt), ich bin nicht viel von einem AS2-guy :\
Btw, hier ist unsere Funktion: Funktion stopMCs(mc:MovieClip):Void { mc.stop(); for (i in mc) { if (mc[i] instanceof MovieClip) { mc[i].stop(); stopMCs(mc[i]); } } }
InformationsquelleAutor inkedmn
Habe ich etwas sehr ähnlich wie diese heute. Meine clips wo Teil eines Navigations-und dupliziert wurden von einem movieclip. Um herauszufinden, wie viele es waren, setze ich eine variable auf der großen Bühne wurde erhöht, bis durch die Aktionen in den Videoclips. Ich setzen Sie ein Intervall, um zu warten, bis alle clips wurden Konto, dann eine Schleife zu füllen, die Interaktivität zu meiner navigation. Funktioniert ziemlich gut zu. Hoffe, das jemand hilft.
InformationsquelleAutor
Den Grund der AS2.0 undokumentierte ObjectDumper feature nicht aufgelistet movieclips an der Wurzel ist, weil es ignoriert nameValue-Paare an das Objekt der root-Ebene, die eine unerhörte Fehler (um das Mindeste zu sagen), da die definition einer assoziierten array ist ein array/Objekt besteht aus nameValue-Paare an der Wurzel.
Beispiel: trace(ObjectDumper.toString({myName:"myValue"})) //Ausgabe = "". Kein Wunder, ließen Sie diese "Funktion" ohne Papiere. Ehrlich gesagt, ich denke, es ist erstaunlich, dass es keine integrierte Möglichkeit, einfach und zuverlässig alle aufzuzählen, den Inhalt eines Objekts für debugging-Zwecke in entweder AS2 noch AS3. Wenn Sie suchen Sie im Netz alles finden Sie sind, hack, jobs von for...in-Schleifen, die nur auf die Wurzel ein array ... nichts rekursiv.
InformationsquelleAutor davea0511