我在flex mxml应用程序文件中的另一个自定义组件中使用自定义组件。是否可以将事件从内部组件传递到外部组件并处理外部组件中的事件?
答案 0 :(得分:4)
Event
构造函数默认bubbles
参数为false
,因此,如Patrick所述,您需要将bubbles
设置为true
时你构建了这个事件。
启用冒泡后,将继续在UI树中调度该事件,直到调用Event.stopPropagation或Event.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));