Вы можете переопределить методы мувиклипа по умолчанию, выполнив следующие действия:
Создайте класс для расширения мувиклипа:
package {
import flash.display.*;
public class SuperMovieClip extends MovieClip {
public function SuperMovieClip() {
// constructor code
super();
}
override public function addChild(child:DisplayObject):DisplayObject {
trace("Hello, I am overriding add child");
// still perform the default behavior but you can do what ever you want.
return super.addChild(child);
}
}
}
Затем во Flash создайте новый мувиклип и выполните командуубедитесь, что он помечен как Включить для ActionScript.Класс должен быть любым именем, которое вы хотите, но базовым классом должен быть SuperMovieClip (или имя, которое вы выбрали для расширенного класса). См. Изображение:
![enter image description here](https://i.stack.imgur.com/kuOUs.png)
Теперь, когда любой этапклип создается из этого базового типа (независимо от того, находится ли он в IDE или через код), он будет иметь тип SuperMovieClip, и каждый раз, когда вызывается addChild, он переопределяет исходную функцию.
Например, я поместил экземпляр этого mc из библиотеки на сцену во время разработки и скомпилировал его, используя следующий код на временной шкале:
import flash.display.Sprite;
stage_mc.addChild(new Sprite());
И он вывел Hello, I am overriding add child