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