我希望父对象会向其所有听到此事件的孩子发送一个事件。 我尝试了下面的代码但没有成功:
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();
}
提前致谢!
答案 0 :(得分:1)
这不是事件Bubbling的情况,而是this的情况。基本上,您不能让孩子监听父调度的事件,而是必须引用子类中的父事件。在你的情况下:
// Inside parent class
dispatchEvent(new Event("event"));
// Inside child class
parent.addEventListener("event",handleEvent);
该链接有一个问题和答案,可以准确处理您的问题。如果您仍然不了解捕获和冒泡阶段在ActionScript 3中的工作方式,那么只需发表评论,我会找到一些关于它们的解释的链接,或者您可以自己轻松找到它们。