为ActionScript执行Stage null ActionScript 3 Flash CS5导出
这是交易, 我有一个从.fla文件调用的主类。在我在库“export for actionscript”中设置一个对象之前,一切都正常。。。在那之后,stage不再工作,stage现在返回“null”,因为我选中了一个对象“export for actionscript” 我使用的是FlashCS5,早期版本的flash从来没有出现过这种情况 对不起,英语。。。我希望我已经够清楚了 代码示例:为ActionScript执行Stage null ActionScript 3 Flash CS5导出,flash,null,flash-cs5,stage,Flash,Null,Flash Cs5,Stage,这是交易, 我有一个从.fla文件调用的主类。在我在库“export for actionscript”中设置一个对象之前,一切都正常。。。在那之后,stage不再工作,stage现在返回“null”,因为我选中了一个对象“export for actionscript” 我使用的是FlashCS5,早期版本的flash从来没有出现过这种情况 对不起,英语。。。我希望我已经够清楚了 代码示例: package com { import flash.display.MovieClip; pub
package com {
import flash.display.MovieClip;
public class Teste extends MovieClip {
public function Teste() {
trace(stage)// traced null
}
}
}
我将尝试解释我所做的步骤。
-创建Teste类;
-打开.fla文件,并将该类添加到.fla文件属性的Class字段中;
-创建MovieClip并尝试从Actionscript导出它;
问题来了。。。当我这样做时,stage现在返回Null,因为我在库中导出了一个MovieClip。o、 o原因是,在没有太多负载的情况下,Stage可能会立即可用。现在您已经为Actionscript添加了要导出的内容,加载时间甚至可能会延长一毫秒,stage将不可用 始终检查阶段是否存在,然后等待它存在,然后再尝试引用它 试试这个:
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
}
}
}
如果这是您的文档类,那么很有可能该代码是在stage对象存在之前初始化的。我只是猜测,但我认为行为的改变是由“export for 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);
}
}
}
你能解释更多关于舞台现在返回“null”的信息吗?也许把代码贴在你测试的地方?