AS3:我可以派遣事件从一个孩子到另一个?(AS3: Can I dispatch Event fr

2019-10-18 01:42发布

嗨,大家好,我无法理清这个谜:)。

如何从Child1发送dispatchEvent和赶上CHILD2这个活动?

要么

如何从Child1发送dispatchEvent和赶上Child3这个活动?

要么

如何从Child3发送dispatchEvent,赶上在Child1这个活动?

多谢你们。 我将在这里得到一些帮助!

Answer 1:

虽然我得到你所要实现的目标,我认为更好的设计方法是让容器来管理它的孩子。

例如,如果容器从child1接收事件时,它的容器的角色,才能在适当通知其他孩子的照顾。 这种方法也使得它在容器中的代码很清楚容器的孩子之间的所有基本交互。 如果我打算在别人的代码,我会很感激这个原因这种方法。

话虽这么说,你可以在的child2和child3的方法,将允许您通过child1作为参数,然后中添加一个监听child1。 例如 :

在容器代码:

child2.setChildListener(child1);
child3.setChildListener(child1);

然后在的child2和child3,你可以这样做:

public function setChildListener(childToListenTo:MovieClip):void
{
    childToListenTo.addEventListener(MouseEvent.CLICK, childClickedHandler);
}

private function childClickedHandler(e:MouseEvent):void
{
    // react to the child click here
}


Answer 2:

首先,你需要学习如何声明自定义事件和处理它们。 这里有一个简单的指南从Adobe: http://cookbooks.adobe.com/post_AS3__Creating_and_dispatching_Custom_Events-17609.html

您可能还需要阅读有关事件是如何泡在下面的链接被捕获: http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a67edfb831266c0b5fc6-8000.html

现在,让我们通过你问的情况:

案例1.从孩子1〜2儿童:从本质上说,除非儿童2听孩子1的情况下,将无法捕捉到它,因为他们没有父母的一种关系。 你可以做的是:在儿童1声明一个事件,并听取和从容器中捕捉到它。 该容器可以调用子2的方法作为事件的结果从儿童1被触发。

壳体2从子1到3​​子:这是基本相同儿童1至儿童3中,仅当容器调用少年2,儿​​童2调用儿童3为好。

案例3.儿童3儿童1.儿童3可以引发事件,可以泡了一路的集装箱。 然后,容器可以调用在儿童1所需的方法。

希望帮助。



文章来源: AS3: Can I dispatch Event from one Child to another?