小孩不能听父母的事吗?

时间:2013-10-31 23:11:45

标签: actionscript-3 flash events

我希望父对象会向其所有听到此事件的孩子发送一个事件。 我尝试了下面的代码但没有成功:

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();
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

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