1

你好我有一个问题,作为标题。

当我打电话给父母时,在我的某个班级。或影片剪辑(根)。在构造函数中,跟踪返回错误 NULL 但如果我在其他私有或公共函数中调用提到的上诉(例如,addEventListener(Event.ENTER_FRAME, func);它的函数有效,为什么?

有人可以解释一下吗?

4

1 回答 1

1

我不清楚你的问题,但如果你打电话

this.parent 或 this.root

您的构造函数方法中,它将始终为 null,因为(来自 Adob​​e ref):

  • 属性是由该 SWF 文件表示的显示列表树结构部分中最顶层的显示对象

  • 父母

    属性表示包含此显示对象的 DisplayObjectContainer 对象

您的 DisplayObject 在构造之前不能添加到任何地方。首先你打电话

var myDisplayObject:DisplayObject = new MyDisplayObject();

然后将其添加到另一个 DisplayObject 或 Stage (DisplayObjectContainer)

另一个DisplayObject.addChild(myDisplayObject); /* 现在你已经定义了 myDisplayObject 父属性和根属性 */


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
    }
}

}
于 2013-07-07T14:20:18.697 回答