Редактировать : Я ответил на другой вопрос ... Извините за это! Надеюсь, это ответит на ваш актуальный вопрос.
Экземпляры сцены внутри мувиклипа должны быть инициализированы, как только вы перейдете к кадру, который фактически содержит этот дочерний элемент:
trace(productName); // will trace null if productName isn't on the current frame
gotoAndStop(frameWithProductName);
trace(productName); // should now be initialized (when publishing for Flash Player 10+)
Если экземпляры находятся в кадре 1, они должны быть инициализированы и доступны сразу в конструкторе. В противном случае, одним из решений будет размещение некоторого кода временной шкалы, который добавляет желаемых слушателей в кадр, где появляются экземпляры. Обратите внимание, что эти экземпляры фактически воссоздаются, когда они исчезают и появляются снова (когда вы покидаете и повторно вводите этот кадр), поэтому в этом случае вы должны перечитать слушателей. Размещение кода слушателя на этом кадре позаботится об этом.
В качестве альтернативы, вы можете прослушивать, когда событие ADDED_TO_STAGE запускается с конкретным объектом, который вас интересует:
public function bleepBloop() {
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, true); // true to listen for children (capture phase)
}
private function onAddedToStage(event:Event):void {
if(event.target == productName) {
// add listeners
}
}