0

親オブジェクトが、このイベントをリッスンしているすべての子にイベントをディスパッチすることを望みます。以下のコードを試してみましたが、成功しませんでした:

var boxParent:Sprite = new Sprite();
var boxChild:Sprite = new Sprite();

this.addChild(boxParent);
boxParent.addChild(boxChild);

boxChild.addEventListener("parentTalking", onParentTalking);
boxParent.dispatchEvent(new Event("parentTalking"));

そうする方法はありますか?

ところで、私は次のようなことを避けることができればいいのにと思います:

for (var i:int = 0; i < boxParent.numChildren; i++) {
    (getChildAt(i) as MyChild).hereItGoesParentCommand();
}

前もって感謝します!

4

1 に答える 1

1

これはイベント バブリングの場合ではなく、このの場合です。基本的に、親がディスパッチしたイベントを子にリッスンさせることはできませんが、代わりに子クラスで親を参照する必要があります。あなたの場合:

// Inside parent class
dispatchEvent(new Event("event"));

// Inside child class
parent.addEventListener("event",handleEvent);

リンクには、問題を正確に扱う質問と回答があります。ActionScript 3 でキャプチャとバブリングのフェーズがどのように機能するかをまだ理解していない場合は、コメントしてください。それらの説明に関するリンクがいくつか見つかります。または、自分で簡単に見つけることができます。

于 2013-10-31T23:45:15.983 に答える