Mit der globalen Methode removeMovieClip(mc) oder mit der Movieclip Methode mc.removeMovieClip() lassen sich wie gewohnt nur Movieclips, die über createEmptyMovieClip, duplicateMovieClip oder attachMovie („wieso heißt das eigentlich nicht attachMovieClip“ – das hat mich schon einige Nerven gekostet..;)) erstellt wurden, entfernen. Es gibt allerdings einen kleinen Workaround mit dem sich auch auf der Bühne erstellte Movieclips über removeMovieClip() entfernen lassen.
Warum lassen sich „statische“ Movieclips nicht über removeMovieClip() entfernen?
Movieclips, die in der Authoring Umgebung auf der Bühne erstellt werden, erhalten eine negative Tiefe, also z.B. -16383. Flash kann keine Movieclips mit einer negativen Tiefe entfernen. Die Tiefe lässt sich über mc.getDepth() abfragen.
Wie entferne ich einen statischen MovieClip?
Die Lösung ist wirklich wieder mal sehr einfach – der Movieclip wird vor dem Entfernen einfach auf eine positive Tiefe verschoben.
mc.swapDepths(1000); // Der Movieclip wird auf eine positive Tiefe (hier 1000) verschoben. mc.removeMovieClip(); // Voila, dann kann auch er entfernt werden.
Impressive.