如何从 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,这将参考:

  1. MainTimeline 如果没有文件 class 存在。
  2. 文档 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);
  }
}