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() するためのフラグです。