カスタム コンポーネントがあり、子アイコンが含まれています。マウス クリック イベント リスナーをコンポーネント (クリック リスナー 1) とアイコン (クリック リスナー 2) の両方に追加すると、イベント ディスパッチ シーケンスはクリック リスナー 2、次にクリック リスナー 1 になります。私はそれを理解することができます。しかし、カスタム イベントをコンポーネント (リスナー 1) に追加し、マウス クリック イベントをアイコン (リスナー 2) に追加すると、アイコンがクリックされると、コンポーネントはカスタム イベントをディスパッチします。私のテストでは、イベント ディスパッチ シーケンスはリスナー 1、次にリスナー 2 です。event-bubbles ルールと一致しません。
私の意見では、カスタムイベントはリスナー2でディスパッチされ、リスナー1をトリガーします。イベント フロー シーケンスがリスナー 2、リスナー 1 ではないのはなぜですか?
コンポーネントで。
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");
}