Events Flex4冒泡自定义事件
如何在Flex4中创建冒泡自定义事件 要在MXML中创建和公开自定义事件,您需要在将使用此行发送事件的组件处声明它:Events Flex4冒泡自定义事件,events,event-handling,mxml,flex4,event-bubbling,Events,Event Handling,Mxml,Flex4,Event Bubbling,如何在Flex4中创建冒泡自定义事件 要在MXML中创建和公开自定义事件,您需要在将使用此行发送事件的组件处声明它: <fx:Metadata> [Event(name="select", type="my.engine.events.SelectionEvent")] </fx:Metadata> [事件(name=“select”,type=“my.engine.events.SelectionEvent”)] 这允许您: <my:Cust
<fx:Metadata>
[Event(name="select", type="my.engine.events.SelectionEvent")]
</fx:Metadata>
[事件(name=“select”,type=“my.engine.events.SelectionEvent”)]
这允许您:
<my:CustomComponent select="doSomething()"/>
然而,你如何使这个泡沫向上。我想这样做
<s:DataGroup select="doSomethingForAll();">
<s:itemRenderer>
<fx:Component>
<my:CustomComponent/>
</fx:Component>
</s:itemRenderer>
</s:DataGroup/>
谢谢 一个可能的解决方案,但不完全是我想要的,就是在数据组级别添加这行代码
this.addEventListener(SelectionEvent.SELECTED, onSelect);
这将确保CustomComponent触发的所有事件都不会发生。您可以使用内置在扩展类中的指定自定义元标记数据信息扩展s:DataGroup容器,也可以从itemRenderer的“select”事件处理程序调用“doSomethingForAll()”方法,请参见下面的代码:
<s:DataGroup
dataProvider="{instructions}"
width="100%">
<s:itemRenderer>
<fx:Component>
<my:CustomComponent
select="rendererSelect()">
<fx:Script>
<![CDATA[
protected function rendererSelect():void
{
outerDocument.doSomethingForAll();
}
]]>
</fx:Script>
</my:CustomComponent>
</fx:Component>
</s:itemRenderer>
</s:DataGroup>
捕获数据组选择事件,然后发送doSomethingForAll() 确保doSomethingForAll事件的冒泡属性设置为true
然后,在显示列表中侦听其上方doSomething的任何事件侦听器都将被调用。您的自定义事件必须扩展事件。在构造函数中,可以找到
name:string
,冒泡:boolean
,以及cacellable:boolean
作为参数
将冒泡参数设置为true。在您的示例中,元数据标记必须位于数据组标记中