Если я следую тому, что вы говорите, у вас нет ссылки на stage
прямо в вашем подклассе MovieClip
? Это происходит, если MovieClip
не присоединен к сцене или другому DisplayObjectContainer
, который уже подключен к нему (где-то в цепочке списка отображения).
Один из способов проверить, доступен ли этап и выполнить ваш код, когда он доступен, - это небольшой фрагмент кода, часто встречающийся в проектах FlashDevelop:
public function Main():void {
stage ? init() : addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
Таким образом, если stage
IS найден, он немедленно запускает метод init()
(без аргументов), в противном случае он будет ожидать его добавления на сцену (или какого-либо другого объекта DisplayObjectContainer, который уже подключен), который будет передать параметр Event
, когда он использует init(e:Event)
в качестве метода обратного вызова.