从其他 MovieClip 中引用主时间轴或文档类
在作为显示树的后代附加的任何 DisplayObject
的时间轴中,你可以使用 root
属性。如果没有自定义文档类,则此属性指向主时间轴;如果定义了文档类,则指向文档类。
因为 root
是类型 DisplayObject
,编译器将不允许你访问在主时间轴或文档类中定义的自定义方法或属性,如下所示:
root.myCustomProperty = 10;
root.myCustomMethod();
要解决这个问题,你可以在拥有文档类的情况下将 root
类型化为文档类:
(root as MyDocumentClass).myCustomMethod();
或者在没有文档类的情况下 MovieClip
:
(root as MovieClip).myCustomMethod();
在这里施展 MovieClip
的原因是因为 MovieClip
是 dynamic
。这意味着编译器允许在其上声明运行时属性和方法,从而在尝试访问未在 MovieClip
上明确定义的属性或方法时防止编译时错误。这样做的缺点是你失去了所有编译时类型的安全性。你最好声明一个文档类并转换为它。