在Flex中自定义组件中冒泡事件

时间:2010-01-11 08:23:25

标签: flex

我在flex mxml应用程序文件中的另一个自定义组件中使用自定义组件。是否可以将事件从内部组件传递到外部组件并处理外部组件中的事件?

3 个答案:

答案 0 :(得分:4)

Event构造函数默认bubbles参数为false,因此,如Patrick所述,您需要将bubbles设置为true时你构建了这个事件。

启用冒泡后,将继续在UI树中调度该事件,直到调用Event.stopPropagationEvent.stopImmediatePropagation为止。

但请记住,冒泡只会影响UI组件;即使bubbles参数设置为true,自定义类触发的事件也不会冒泡。

答案 1 :(得分:3)

是的,只需在调度时将属性bubbles设置为true即可进入内部组件:

内部组件:

dispatchEvent(new Event("myEvent", true));

外部组件:

addEventListener("myEvent", onMyEvent);
...

答案 2 :(得分:0)

//Outer.mxml
<local:Inner id="inner"/>
inner.addEventListener(TYPE_NAME, handler);
private function handler(e:Event):void
{
    trace("Bingo");
}

//Inner.mxml
dispatchEvent(new Event(TYPE_NAME));