如何从AS3中的类访问主时间轴上的变量?

时间:2017-12-15 05:10:21

标签: class actionscript-3 variables

我已经看过几个同样问题的帖子,并且没有明确的答案。

主要时间表:

var mynum:Number = 0;

如何从外部类文件中的代码访问/更改此变量? 我尝试的一切都返回“实例不存在错误”

1 个答案:

答案 0 :(得分:1)

作为展示树一部分的所有DisplayObject(直接在舞台上或作为舞台上任何DisplayObjectContainer的后代)都可以访问root,这将是要么参考:

  1. 如果没有文档类,则为MainTimeline
  2. 文档类(如果存在)。
  3. 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);
      }
    }