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

这不是事件冒泡的情况,而是this的情况。基本上,您永远不能让子级监听父级调度的事件,而是必须在子类中引用父级。在你的情况下:

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

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

该链接有一个问题和答案,可以完全解决您的问题。如果您仍然不了解 ActionScript 3 中捕获和冒泡阶段的工作原理,那么只需发表评论,我会找到一些关于它们的解释的链接,或者您可以自己轻松找到它们。

于 2013-10-31T23:45:15.983 回答