stage在文档类中是null吗?ActionScript 3.0 Flash CS5

Raz*_*orm 3 flash actionscript-3 flash-cs5

在我的名为Engine的文档类中,stage变量由于某种原因为null:

package game
{

    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.events.Event;
    public class Engine extends MovieClip
    {
        public function Engine()
        {
            trace(stage); // gives Null
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这个工作正常.我最近刚将两个动态文本字段添加到符号中,突然之间该阶段为空.我真的没有看到这种联系.

这是我第一次使用动作脚本和flash,所以对一切都有点困惑.

pro*_*cal 6

好吧,我已经通过在CS5中向舞台添加TLF字体来重现您所经历的内容,这必然是导致它的原因.但是这段代码可以解决你的问题:

public function Engine():void 
{ 
     if( !this.stage ) 
         this.addEventListener( Event.ADDED_TO_STAGE, init ); 
     else 
         init(); 
} 

private function init(e:Event = null):void 
{ 
   this.removeEventListener( Event.ADDED_TO_STAGE, init ); 
   trace(stage);
 }  
Run Code Online (Sandbox Code Playgroud)

我的猜测是在这种情况下创建舞台有一些延迟.我已经发生这种情况并且不知道为什么,所以这就是我处理它的方式.有用!:)