1

こんにちは、タイトルのように問題があります。

私が親に電話するとき、私のいくつかのクラスで。またはムービークリップ(ルート)。コンストラクターでは、トレースはエラー NULL を返しますが、言及されたアピールを他のプライベートまたはパブリック関数で呼び出すと (たとえば、その関数が機能するaddEventListener(Event.ENTER_FRAME, func);のはなぜですか?

誰か説明してもらえますか?

4

1 に答える 1

1

私はあなたの質問を明確に理解していませんが、電話する場合:

this.parent または this.root

コンストラクターメソッドで、 ( Adob​​e ref から) 次の理由により、常に null になります。

  • プロパティは、その SWF ファイルによって表される表示リストのツリー構造の部分の最上位の表示オブジェクトです。

  • プロパティは、この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します

DisplayObject は、構築される前にどこにも追加できません。まずあなたが電話する

var myDisplayObject:DisplayObject = new MyDisplayObject();

次に、それを別の DisplayObject または Stage (DisplayObjectContainer) に追加します。

anotherDisplayObject.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 に答える