如何从 AS3 中的 class 访问主时间轴上的变量?
how to access a variable on main timeline from a class in AS3?
我看过好几个帖子都问过同样的问题,但都没有明确的答案。
主要时间线:
var mynum:Number = 0;
我如何从外部 class 文件的代码中 access/alter 这个变量?
我尝试的一切 returns "instance does not exist error"
显示树中的所有 DisplayObject
(无论是直接在舞台上还是作为舞台上任何 DisplayObjectContainer
的后代)都可以访问 root
,这将参考:
MainTimeline
如果没有文件 class 存在。
- 文档 class 如果存在。
将 root
转换为 MovieClip
将使其被视为 dynamic
,这意味着您在主时间线上声明的变量和函数将可以访问而不会出现 compile-time 错误,这意味着您可以这样做:
trace(MovieClip(root).mynum);
因为child必须在执行代码的时候在舞台上,所以不能直接放在object的构造函数中,object是用[=19动态添加的=].但是,您可以利用 ADDED_TO_STAGE
事件等待 object 先添加到舞台:
public class Example extends Sprite {
public function Example() {
addEventListener(Event.ADDED_TO_STAGE, added);
}
protected function added(event:Event):void {
trace(MovieClip(root).mynum);
}
}
我看过好几个帖子都问过同样的问题,但都没有明确的答案。
主要时间线:
var mynum:Number = 0;
我如何从外部 class 文件的代码中 access/alter 这个变量? 我尝试的一切 returns "instance does not exist error"
显示树中的所有 DisplayObject
(无论是直接在舞台上还是作为舞台上任何 DisplayObjectContainer
的后代)都可以访问 root
,这将参考:
MainTimeline
如果没有文件 class 存在。- 文档 class 如果存在。
将 root
转换为 MovieClip
将使其被视为 dynamic
,这意味着您在主时间线上声明的变量和函数将可以访问而不会出现 compile-time 错误,这意味着您可以这样做:
trace(MovieClip(root).mynum);
因为child必须在执行代码的时候在舞台上,所以不能直接放在object的构造函数中,object是用[=19动态添加的=].但是,您可以利用 ADDED_TO_STAGE
事件等待 object 先添加到舞台:
public class Example extends Sprite {
public function Example() {
addEventListener(Event.ADDED_TO_STAGE, added);
}
protected function added(event:Event):void {
trace(MovieClip(root).mynum);
}
}