| メソッド | フレームあり | フレームなし |
直接の既知のサブクラス
EventDispatcher クラスは、Flash Player と関連のないイベントの送出とリッスンを実装する Mix-in クラスです。dispatchEvent()、addEventListener()、および removeEventListener() の各メソッドは、Operation、Repeater、Validator など、このようなイベントを送り出すクラスに含まれています。mouse イベントなど、Flash Player に関するイベントは、関連する Mix-in クラスである UIEventDispatcher で処理されます。これは、EventDispatcher の拡張です。
| メソッド | |
| addEventListener( eventType:String, eventListener)
: Void指定のオブジェクトまたは関数を、このオブジェクトからブロードキャストされる指定の型のイベントに対するリスナーとして登録します。 |
| dispatchEvent( eventObj:Object)
: Booleanこの型のイベントを受信するために addEventListener() を通じて登録されたこのオブジェクトのすべてのリスナーに、指定のイベントオブジェクトをブロードキャストします。 |
static | initialize( object:Object)
: Void指定のオブジェクトにメソッドを追加して、イベントの送出とリッスンをサポートします。 |
| removeEventListener( eventType:String, eventListener)
: Void指定のオブジェクトまたは関数を、このオブジェクトからブロードキャストされる指定の型のイベントに対するリスナーとして登録解除します。 |
| メソッドの詳細 |
addEventListener( eventType:String, eventListener)
: Void
オブジェクトから dispatchEvent(eventObj) を呼び出すと、eventObj.type で指定されたイベント型のすべてのリスナーに、eventObj がブロードキャストされます。たとえば、myButton.dispatchEvent({type:"click"}) を実行すると、オブジェクト {type:"click", target:myButton} が myButton.addEventListener("click", listener) によって登録したリスナーにブロードキャストされます。
リスナーにブロードキャストされたイベントがドキュメントオブジェクトなどのオブジェクトである場合、そのオブジェクトの handleEvent() メソッドが存在すれば、handleEvent() が呼び出され、メソッドの this にリスナーオブジェクトが設定されます。handleEvent() にはこのイベントオブジェクトがただ 1 つの引数として渡されます。次に、このメソッドは自身の引数の type プロパティを調べ、どの型のイベントを受信したのかを判断します。また、target プロパティを調べ、どのオブジェクトからイベントが送出されたのかを判断します。handleEvent() は値を返しません。
リスナーにブロードキャストされたイベントが関数、つまり、なんらかのクラスのメソッドか、または匿名関数である場合は、そのリスナー関数が呼び出され、関数の this に送出元のオブジェクトが設定されます。リスナー関数にはこのイベントオブジェクトがただ 1 つの引数として渡されます。リスナー関数は値を返しません。
リスナー関数が実行されるコンテキストで上記の規則に従った場合、たとえば myButton_click() などのドキュメントメソッドを記述し、このメソッドを myButton.addEventListener("click", myButton_click) を使用して myButton のリスナーの 1 つとして登録すると、myButton_click() が呼び出されたときに、this はドキュメントではなく myButton になります。通常はこのような動作を指定することはありません。これは、<mx:Button id="myButton" click="myButton_click()"/> と記述した場合に、MXML コンパイラによって、myButton_click() がドキュメントのコンテキストの中で実行されることが保証されるためです。ユーティリティメソッド mx.utils.Delegate.create() を使用すると、リスナーメソッドが実行されるコンテキストをボタンからドキュメントに変更できます。
リスナーが複数ある場合、各リスナーにブロードキャストされるイベントオブジェクトの順序は不定であり、変化する可能性があります。
パラメータ
eventType:String - "click"、"change" など、イベントの種類を指定するストリングです。
eventListener - 上記の種類のイベントを受け取るオブジェクトまたは関数です。
関連項目
mx.utils.Delegate
dispatchEvent( eventObj:Object)
: Boolean
addEventListener() を通じて登録されたこのオブジェクトのすべてのリスナーに、指定のイベントオブジェクトをブロードキャストします。 イベントオブジェクトとして送出するオブジェクトには、"click" などのイベントの型を指定する type プロパティが最低限必要です。イベントオブジェクトには、ブロードキャストされる前に target プロパティが追加されます。このプロパティは送出元オブジェクトへの参照です。
たとえば、myButton.dispatchEvent({type:"click"}) を実行すると、オブジェクト {type:"click", target:myButton} が myButton.addEventListener("click", listener) によって登録したリスナーにブロードキャストされます。
リスナー側でどのようにイベントを受信するのかの詳細については、addEventListener() を参照してください。
eventObj.bubbles が true の場合、イベントは親チェーンまで伝播され、各祖先からブロードキャストされます。
イベントは直ちにブロードキャストされ、すべてのリスナーがイベントを受信した後に、dispatchEvent() 呼び出しが制御を戻します。
パラメータ
eventObj:Object - イベントを説明するオブジェクトです。少なくとも type プロパティを持っている必要があります。
static initialize( object:Object)
: Void
パラメータ
object:Object - メソッドを受け取るオブジェクトです。
removeEventListener( eventType:String, eventListener)
: Void
パラメータ
eventType:String - "click"、"change" など、イベントの種類を指定するストリングです。
eventListener - 上記の種類のイベントを受け取るオブジェクトまたは関数です。