Flash AS3: DuplicateMovieClip oder eine Clone-Funktion

Wie auf vielen Seiten im Web bereits beschrieben, sind es im Bezug auf MovieClip-Kopien zwei Dinge, die in Flash nicht funktioniert. In AS2 kann man zwar MovieClips kopieren, dann aber nicht einem anderen Parent-Objekt zuweisen. d.h. wenn die Verschachtelung wie folgt ist: A.B und ich mach eine Kopie von B mit dem Namen C, dann ist es immer noch A zugeordnet: A.B! Und es gibt keinen Weg, um das zu ändern.
In AS3 ist es einfach, den Parent eines Movie-Clips zu ändern:

a_mc.addChild(b_mc.c_mc);

Nach diesem Aufruf ist c_mc nun ein Unterobjekt von a_mc und nicht mehr von b_mc. Was in AS3 allerdings nicht so einfach ist, ist das Kopieren von MovieClips. Es gibt keine Clone-Funktion oder ähnliches. Bei meinen Recherchen bin im am Ende auf eine Seite gestoßen, die das was ich gefunden habe, ganz gut zusammenfasst: The Quest for MovieClip.clone(). Ich hatte vorhin schon die Lösung Nr.5 für mich ausgesucht: die Funktion duplicateDisplayObject. Das Beispiel funktioniert, sobald ich den Funktionsaufruf (mitsamt der Klasse) in meine Datei reinkopiert hatte, funktionierte es nicht. Der genaue Vergleich ergab, dass es wichtig ist, das zu kopierende Objekt als Klasse in Flash zu exportieren. Dazu beim Anlegen des MovieClips als Symbol oder unter Eigenschaften des Symbols in der Bibliothek den Haken bei “Für ActionScript” exportieren setzen und einen Klassennamen angeben (der allerdings keine weitere Rolle spielt). Dann klappts auch mit der Kopie.

Kommentare sind geschlossen.