__Listeners__

__Listeners__

private new __Listeners__()

EventDispatcher インスタンスのメンバ(_listeners)でイベントリスナをイベント名(string)や イベントID(5~以上の number, フレームワーク内で定義、5 以上になる理由は後述)をキーとする Array で記憶します。

Arrayには、__CallbackHash__ というハッシュ、または関数が蓄えられています。

また、イベントターゲット(EventDispatcher[ '_rawObject' ])に渡された再利用可能クロージャの控えを _listeners[0] に記憶します。(ACTUAL_HANDLER)

dispatch 中の状態と操作を記録し不整合が起きないようにするためのプロパティ(_listeners[1]~_listeners[4])を持ちます。イベントID が 5 から始まるのはこのためです。

0:ACTUAL_HANDLER
イベントターゲットの addEventListener 等に渡される実際の関数(多くの場合、再利用可能クロージャ、それ以外は通常の関数)を控えています。
1:DISPATCHING number
dispatch 中か?さらにインスタンス自身の dispatch がネストした場合、その深さを記憶します。
2:RESERVES Array
イベント発火中に listen() が呼ばれた場合に引数を蓄え、完了時(DISPATCHING===0)に再度 listen() するための一時ストアです。
3:UNLISTENS Object
イベント発火中に unlisten() が呼ばれた場合に対象リスナを記憶し、リスナが呼ばれないようにします。完了時(DISPATCHING===0)に再度 unlisten() します。
4:KILL_RESERVED boolean
dispatch 中に kill() が呼ばれた場合に一旦 kill をキャンセルし、完了時(DISPATCHING===0)に再度 kill() するためのフラグです。