Flash 何时可以访问阶段实例?

Flash 何时可以访问阶段实例?,flash,actionscript,Flash,Actionscript,我用的是Flash CS5。我在主类中声明了我的stage上的一些实例,我想将一些事件附加到它们,但是在主类构造函数中,这些实例被声明为null 访问阶段实例的最佳实践是什么?我是否可以添加一个事件侦听器,它将告诉我何时填充了阶段实例属性 简单的例子: public class bleepBloop extends MovieClip { public var productName:TLFTextField; public function bleepBloop() {

我用的是Flash CS5。我在主类中声明了我的stage上的一些实例,我想将一些事件附加到它们,但是在主类构造函数中,这些实例被声明为null

访问阶段实例的最佳实践是什么?我是否可以添加一个事件侦听器,它将告诉我何时填充了阶段实例属性

简单的例子:

  public class bleepBloop extends MovieClip {

    public var productName:TLFTextField;

    public function bleepBloop() {
      trace( productName ); // Here it is null
    }

  }

但是,当我稍后访问productName时,它已被定义。

编辑:我回答了一个不同的问题。。。对不起!希望这能回答你的实际问题

一旦跳转到实际包含该子级的帧,MovieClip中的stage实例就应该初始化:

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帧上,则应立即在构造函数中初始化和访问它们。否则,一种解决方案是将一些时间线代码添加到实例出现的帧上。请注意,这些实例实际上是在它们消失和重新出现时(当您离开并重新进入该帧时)重新创建的,因此在这种情况下,您必须读取侦听器。在该框架上放置侦听器代码将解决此问题

或者,您可以侦听添加的_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
    }
}

是的。我做的每个项目都有一个“AddedStatageHandler(e:Event)”,我将其视为实际的启动点。在我看来,删除
ADDED\u TO\u STAGE
处理程序中的侦听器是该过程中最重要的部分。当您不这样做时,您将得到对处理程序的多个调用,这些调用将在应用程序结构中逐步进行,并使外部人员感到困惑。