`root`在不同的地方变化

wch*_*gin 4 flash actionscript actionscript-3 document-class

在ActionScript 3中,我读过root变量引用了Document Class的一个实例.

在我的文档类构造函数中,trace(this == root)返回一个true.稍后在构造函数中,调用另一个类的构造函数.但是,这个构造函数表明了这root一点null.最后,从事件侦听器跟踪给我的结果root[object Stage].

我的目标是拥有一个Document Class(in MainGame.as)的单个实例,并且能够(root as MainGame)在我的ActionScript程序中引用它.我怎样才能做到这一点?

如果重要,我的所有代码都在默认包中.

谢谢!

Fog*_*zie 5

一旦将文档类添加到显示列表中,root它就DisplayObject成为对文档类的引用DisplayObject.您可以继续使用,root但请注意,只有显示列表中的对象才有效.

你可以阅读更多关于这里扎根:

Stage对象的root属性是Stage对象本身.对于尚未添加到显示列表的任何显示对象,root属性设置为null,除非它已添加到显示列表之外的显示对象容器中,但它是最顶层显示对象的子对象加载的SWF文件.

  • 当调用另一个类的构造函数时,它尚未添加到显示列表中.您必须侦听`Event.ADDED_TO_STAGE`,然后在事件处理程序中跟踪根. (3认同)