flash - Actionscript null Actionscript 3 Flash CS5输出

  显示原文与译文双语对照的内容

我有一个主要的类,我从. fla 文件中调用。 在我在库"。为actionscript导出"中设置对象之前,一切都正常工作。 舞台不再工作了,舞台现在返回"空",只是因为我检查了一个对象"。为actionscript导出"。

我使用 Flash cs5,它永远不会出现在早期版本的Flash 中。

对不起英语。"。"。我希望我能够清楚。

代码示例:


package com {

import flash.display.MovieClip;

public class Teste extends MovieClip {

 public function Teste() {
 trace(stage)//traced null 
 }
}
}

我将尝试解释我所做的步骤。 - 创建该测试类;- 打开. fla 文件,并在. fla 文件的属性中添加该类,并且试图从Actionscript中导出。 当我做这个阶段,现在返回空,只是因为我在库中导出了一个 MovieClip 。 o.O

时间:

原因是,当没有多少负载时,阶段可能马上就可用了。 现在已经添加了为Actionscript导出的内容,加载甚至可以能需要一毫秒的时间,并且阶段不可以用。

总是检查阶段是否存在,然后在尝试引用之前等待它存在。

尝试这个:


package com {

import flash.display.MovieClip;

public class Teste extends MovieClip {

 public function Teste() {
 if(!stage) addEventListener(Event.ADDED_TO_STAGE, _addedToStage)
 else _addedToStage();
 }

 private function _addedToStage(e:Event = null)
 {
 trace(stage)//traced null 
 }
}
}

如果这是你的文档类,那么这个代码在对象存在之前有很好的初始化。 我只是猜测,但是我希望行为的变化是由于'。为actionscript导出'类在第一个帧上加载定义而导致的。

尝试等待阶段存在:


package com {

import flash.display.MovieClip;

public class Teste extends MovieClip {

 public function Teste() {
 if(stage) {
 init();
 } else {
 addEventListener(Event.ADDED_TO_STAGE,init);
 }
 }

 private function init(evt:Event = null):void {
 removeEventListener(Event.ADDED_TO_STAGE,init);
//stage should now exist
 trace(stage);
 }
}
}

...