我有一个自定义组件,它包含一个子图标。如果我向组件(click-listener1)和图标(click-listener2)添加鼠标单击事件侦听器,则事件调度顺序是 click-listener2,然后是 click-listener1。我能理解。但是,如果我向组件 (listener1) 添加自定义事件,并将鼠标单击事件添加到 icon(listener2),当单击 icon 时,组件将调度自定义事件。在我的测试中,事件调度顺序是 listener1,然后是 listener2。它与事件气泡规则不匹配。
在我看来,自定义事件是在 listener2 中调度的,这会触发 listener1。为什么事件流顺序不是listener2,listener1?
在组件中。
icon.addEventListener(MouseEvent.CLICK, iconClickHandler);
private function iconClickHandler(event:MouseEvent):void
{
trace ("Listener2");
var customEvent:CustomEvent= new CustomEvent(CustomEvent.CUSTOM_EVENT, true, true);
dispatchEvent(customEvent)
trace ("Listener3");
}
在应用程序中,其中包含组件
component.addEventListener(CustomEvent.CUSTOM_EVENT, customEventHandler);
private function customEventHandler(event:CustomEvent):void {
trace ("Listener1");
}