你好,我有一个问题,作为标题。
在我打电话给父母的课堂上。或MovieClip(root)。在构造函数中,跟踪返回错误NULL但是如果我在其他私有或公共函数中调用提到的上诉(例如,来自addEventListener(Event.ENTER_FRAME, func);
的函数,它可以工作,为什么?
有人可以解释一下吗?
答案 0 :(得分:1)
我不清楚您的问题,但如果您致电:
在构造函数方法中this.parent或 this.root
,将始终为null ,因为(from Adobe ref):
根
属性是由该SWF文件表示的显示列表树结构部分中的最顶层显示对象
父
属性表示包含此显示对象的DisplayObjectContainer对象
在构造之前,无法将DisplayObject添加到任何位置。 首先你打电话
var myDisplayObject:DisplayObject = new MyDisplayObject();
然后将其添加到另一个DisplayObject或Stage(DisplayObjectContainer)
anotherDisplayObject.addChild(myDisplayObject的); / *现在你已经定义了myDisplayObject父级和root属性* /
package {
import flash.display.Sprite;
public class Picture extends Sprite
{
public function Picture()
{
trace(parent) // parent is null
addEventListener(Event.ADDED, onAdded)
}
private function onAdded(e:Event):void
{
trace(parent) // returns parent
}
}
}