Apache flex Flex:Why can';我不能处理某些事件吗?

Apache flex Flex:Why can';我不能处理某些事件吗?,apache-flex,events,Apache Flex,Events,在某些情况下,我似乎无法让组件接收事件 [编辑] 澄清一下,示例代码只是为了演示,我真正想问的是,是否有一个可以添加侦听器的中心位置,可以可靠地向任意对象发送事件或从任意对象发送事件 我最终使用parentApplication来发送和接收我需要处理的事件 [/编辑] 如果两个组件具有不同的父组件,或者如下面的示例所示,其中一个组件是弹出式组件,那么事件似乎永远不会到达侦听器(对于不起作用的分派,请参阅“弹出式”方法): 我可以想出一些解决办法,但似乎应该有一些中央活动巴士… 我遗漏了什么吗

在某些情况下,我似乎无法让组件接收事件

[编辑]

澄清一下,示例代码只是为了演示,我真正想问的是,是否有一个可以添加侦听器的中心位置,可以可靠地向任意对象发送事件或从任意对象发送事件

我最终使用parentApplication来发送和接收我需要处理的事件

[/编辑]

如果两个组件具有不同的父组件,或者如下面的示例所示,其中一个组件是弹出式组件,那么事件似乎永远不会到达侦听器(对于不起作用的分派,请参阅“弹出式”方法):


我可以想出一些解决办法,但似乎应该有一些中央活动巴士…


我遗漏了什么吗?

当事件从
btnMenu
调度时,您正在将侦听器附加到

这应该起作用:

dispatchEvent(new Event("stepchild", true)); dispatchEvent(新事件(“继子女”,true)); 注:除非明确要求克服范围问题,否则没有理由到处放置不必要的“
this
”。在这种情况下,您只需将此保留在外。

以上是正确的。 您正在从btnMenu调度事件,但您没有侦听btnMenu上的事件-您正在侦听应用程序上的事件

从应用程序中发送:

dispatchEvent(new Event("stepchild", true));
或者在btnMenu上收听

btnMenu.addEventListener("stepchild",handleStepChild);
btnMenu.dispatchEvent(new Event("stepchild",true));

感谢您的回复,出于可读性的考虑,我使用了“this”,以非常清楚地说明哪些事情正在做哪些事情。
btnMenu.addEventListener("stepchild",handleStepChild);
btnMenu.dispatchEvent(new Event("stepchild",true));