Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何在Flex中的组件之间分派事件?_Apache Flex_Flex3 - Fatal编程技术网

Apache flex 如何在Flex中的组件之间分派事件?

Apache flex 如何在Flex中的组件之间分派事件?,apache-flex,flex3,Apache Flex,Flex3,我是Flex新手。我的问题是如何在组件之间分派事件?据我所知,Flex只将事件气泡化到它自己或它的父级 我的处境是: <mx:Application> <com:Component1 id="comp1" /> <com:Component2 id="comp2" /> </mx:Application> 在Component2.mxml中 我还有另外两个组件叫做A和B 我想让comp1发送一个

我是Flex新手。我的问题是如何在组件之间分派事件?据我所知,Flex只将事件气泡化到它自己或它的父级

我的处境是:

    <mx:Application>
        <com:Component1 id="comp1" />
        <com:Component2 id="comp2" />
    </mx:Application>

在Component2.mxml中 我还有另外两个组件叫做A和B

我想让comp1发送一个带有参数的事件,根据参数,可以在comp2中对A和B进行一些更改。我如何才能在comp2中获得该事件?我知道Cairngorm可能会有所不同,但我现在不想使用它。有人能帮我一下吗?非常感谢


最好是SHOO,如果应用程序触发冒泡事件,它将通过整个层次结构、comp1和comp2以及它们各自的子级传递。Comp1应携带元数据:

[Event(name="someEvent", type="flash.events.Event")]
现在,当comp1分派事件时,它将在父级中进行处理,如:

<com:Component1 id="comp1" someEvent="this.dispatchEvent(event,true)"/>

就像接力赛一样

我认为最好使用适当的MVC结构来处理这个问题,如Robotlegs、mate、swiz、PureMVC等。


   <mx:Application>
        <com:Component1 id="comp1" click="comp2.handleComp1Click()"/>
        <com:Component2 id="comp2" click="comp1.handleComp2Click()"/>
    </mx:Application>
这很粗糙,但你可以这样做。对于更复杂的情况,在应用程序级别编写一个(或多个)函数,让这些函数处理事件,然后将您需要的内容向下传播到子级。在您的示例中,您需要在应用程序级别执行一些操作


是的,一个合适的架构可能更好

谢谢,Glenn。您的解决方案是可行的。Comp1将发送一个事件,将其冒泡到应用程序级别,在该级别上我将侦听该事件,并将其处理程序指向Comp2的handleComp1Handler。