我已经看过几个同样问题的帖子,并且没有明确的答案。
主要时间表:
var mynum:Number = 0;
如何从外部类文件中的代码访问/更改此变量? 我尝试的一切都返回“实例不存在错误”
答案 0 :(得分:1)
作为展示树一部分的所有DisplayObject
(直接在舞台上或作为舞台上任何DisplayObjectContainer
的后代)都可以访问root
,这将是要么参考:
MainTimeline
。将root
转换为MovieClip
会将其视为dynamic
,这意味着您在主时间轴上声明的变量和函数可以在没有编译时错误的情况下访问,这意味着您可以这样做:
trace(MovieClip(root).mynum);
由于子代码在执行代码时必须位于舞台上,因此不能将其直接放置在使用addChild
动态添加的对象的构造函数中。但是,您可以利用ADDED_TO_STAGE
事件等待对象首先添加到舞台:
public class Example extends Sprite {
public function Example() {
addEventListener(Event.ADDED_TO_STAGE, added);
}
protected function added(event:Event):void {
trace(MovieClip(root).mynum);
}
}