パッケージflash.events
public class EventDispatcher
継承EventDispatcher Inheritance Object
ImplementsIEventDispatcher
SubclassesAbstractInvoker, AsyncToken, AxisBase, Camera, Channel, ChannelSet, ChartItem, ContextMenu, ContextMenuItem, CSSStyleDeclaration, DataStore, DataTransform, DisplayObject, Effect, EffectInstance, EffectManager, FileReference, FileReferenceList, IME, LayoutManager, LoaderInfo, LocalConnection, LogLogger, MessageAgent, Microphone, ModuleBase, NetConnection, NetStream, PrintJob, RadioButtonGroup, SetEventHandler, SharedObject, Socket, Sort, SortField, Sound, SoundChannel, State, StyleSheet, Timer, ToolTipManager, Tween, UIComponentAutomationImpl, URLLoader, URLStream, Validator, XMLSocket

EventDispatcher クラスは、IEventDispatcher インターフェイスを実装し、DisplayObject クラスの基本クラスです。EventDispatcher クラスでは、表示リストの任意のオブジェクトをイベントターゲットなどにして、IEventDispatcher インターフェイスのメソッドを使用することができます。

イベントターゲットは、Flash® Player イベントモデルの重要な部分です。イベントターゲットは、イベントが表示リスト階層をどのように流れるかに関して中心的な役割を果たします。マウスのクリックやキー押下などのイベントが発生すると、Flash Player によって、イベントオブジェクトが表示リストのルートからイベントフローに送出されます。イベントオブジェクトは、表示リストを移動してイベントターゲットに到達すると、そこから引き返して表示リストを往復します。このイベントターゲットへの往復は、概念として次の 3 つの段階に分けられます。キャプチャ段階は、ルートからイベントターゲットのノードの直前のノードまでが対象となります。ターゲット段階は、イベントのターゲットノードのみが対象となります。バブリング段階は、表示リストのルートまでの戻りにあるすべての後続ノードが対象となります。

一般に、ユーザー定義クラスがイベント送出機能を得る最も簡単な方法は、EventDispatcher を拡張することです。クラスが既に別のクラスを拡張していて拡張が不可能な場合、代わりに IEventDispatcher インターフェイスを実装し、EventDispatcher メンバーを作成して、集約された EventDispatcher に呼び出しをルーティングする単純なフックを記述できます。



パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリック Methods
 メソッド定義
  
EventDispatcher クラスのインスタンスを集約します。
EventDispatcher
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
リスナーがイベントの通知を受け取るように、イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録します。
EventDispatcher
  
イベントをイベントフローに送出します。
EventDispatcher
  
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
  
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
   Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
コンストラクタの詳細
EventDispatcher()コンストラクタ
public 関数 EventDispatcher(target:IEventDispatcher = null)

EventDispatcher クラスのインスタンスを集約します。

EventDispatcher クラスは、一般に基本クラスとして使用されます。このため、ほとんどの開発者はこのコンストラクタ関数を使用する必要がありません。ただし、IEventDispatcher インターフェイスを実装する上級開発者は、このコンストラクタを使用する必要があります。EventDispatcher クラスを拡張できないため、代わりに IEventDispatcher インターフェイスを実装する必要がある場合は、このコンストラクタを使用して、EventDispatcher クラスのインスタンスを集約します。

パラメータ
target:IEventDispatcher (default = null) — EventDispatcher オブジェクトに送出されるイベントのターゲットオブジェクトです。このパラメータが使用されるのは、EventDispatcher インスタンスが、IEventDispatcher を実装するクラスごとに集約される場合です。これは、含んでいるオブジェクトをイベントのターゲットにするために必要です。クラスが単純に EventDispatcher を継承する場合は、このパラメータを使用しないでください。
メソッドの詳細
addEventListener()メソッド
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

リスナーがイベントの通知を受け取るように、イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録します。イベントリスナーは、特定のタイプのイベント、段階、および優先度に関する表示リスト内のすべてのノードに登録できます。

イベントリスナーが正常に登録された後に、addEventListener() をさらに呼び出して優先度を変更することはできません。リスナーの優先度を変更するには、最初に removeListener() を呼び出す必要があります。その後、同じリスナーを新しい優先度レベルで再度登録できます。

リスナーが登録された後に、type または useCapture に別の値を設定して再度 addEventListener() を呼び出すと、別のリスナー登録が作成されることに注意してください。たとえば、最初にリスナーを登録するときに useCapturetrue に設定すると、そのリスナーはキャプチャ段階のみでリスニングします。同じリスナーオブジェクトを使用して addEventListener() を再度呼び出すときに、useCapturefalse に設定されている場合、2 つの個別のリスナーあります。1 つはキャプチャ段階でリッスンするリスナーで、もう 1 つはターゲットおよびバブリング段階でリッスンするリスナーです。

ターゲット段階またはバブリング段階のみを対象とするイベントリスナーを登録することはできません。登録時にこれらの段階が組み合わされるのは、バブリングはターゲットノードの祖先にしか適用されないためです。

イベントリスナーが不要になった場合は、removeEventListener() を呼び出して、イベントリスナーを削除します。削除しない場合、メモリの問題が発生する可能性があります。ガベージコレクターは参照を有するオブジェクトを削除しないため、登録されているイベントリスナーに関係したオブジェクトはメモリから自動的に除去されません。

EventDispatcher インスタンスをコピーしても、それに関連付けられているイベントリスナーはコピーされません。新しく作成したノードにイベントリスナーが必要な場合は、ノードを作成した後に、リスナーを関連付ける必要があります。ただし、EventDispatcher インスタンスを移動した場合は、関連付けられているイベントリスナーも一緒に移動されます。

イベントがノードで処理されるときに、イベントリスナーがそのノードに登録中であれば、イベントリスナーは現在の段階ではトリガされません。ただし、バブリング段階など、イベントフローの後の段階でトリガすることができます。

イベントがノードで処理されているときにイベントリスナーがノードから削除された場合でも、イベントは現在のアクションによってトリガされます。削除された後は、その後の処理で再び登録されない限り、イベントリスナーは二度と呼び出されません。

パラメータ
type:String — イベントのタイプです。
 
listener:Function — イベントを処理するリスナー関数です。この関数は、次の例のように、Event オブジェクトを唯一のパラメータとして受け取り、何も返さないものである必要があります。

function(evt:Event):void

関数は任意の名前を持つことができます。

 
useCapture:Boolean (default = false) — リスナーが、キャプチャ段階、またはターゲットおよびバブリング段階で動作するかどうかを判断します。useCapturetrue に設定すると、リスナーはキャプチャ段階のみでイベントを処理し、ターゲット段階またはバブリング段階では処理しません。useCapturefalse に設定すると、リスナーはターゲット段階またはバブリング段階のみでイベントを処理します。3 つの段階すべてでイベントを受け取るには、addEventListener を 2 回呼び出します。useCapturetrue に設定して 1 度呼び出し、useCapturefalse に設定してもう一度呼び出します。
 
priority:int (default = 0) — イベントリスナーの優先度レベルです。優先度は、符号付き 32 ビット整数で指定します。数値が大きくなるほど優先度が高くなります。優先度が n のすべてのリスナーは、優先度が n-1 のリスナーよりも先に処理されます。複数のリスナーに同じ優先度が設定されている場合は、追加された順番で処理されます。デフォルトの優先度は 0 です。
 
useWeakReference:Boolean (default = false) — リスナーへの参照が強参照と弱参照のいずれであるかを判断します。デフォルトである強参照の場合は、リスナーのガベージコレクションが回避されます。弱参照では回避されません。

スロー
ArgumentError — 指定された listener は関数ではありません。

関連項目

dispatchEvent()メソッド 
public function dispatchEvent(event:Event):Boolean

イベントをイベントフローに送出します。イベントターゲットは EventDispatcher オブジェクトです。これに対して dispatchEvent() メソッドが呼び出されます。

パラメータ
event:Event — イベントフローに送出されるイベントオブジェクトです。イベントが再度送出されると、イベントのクローンが自動的に作成されます。イベントが送出された後にそのイベントの target プロパティは変更できないため、再送出処理のためにはイベントの新しいコピーを作成する必要があります。

戻り値
Boolean — 値が true の場合、イベントは正常に送出されました。値が false の場合、イベントの送出に失敗したか、イベントで preventDefault() が呼び出されたことを示しています。

スロー
Error — イベント送出再帰が上限に達しました。
hasEventListener()メソッド 
public function hasEventListener(type:String):Boolean

EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。これにより、EventDispatcher オブジェクトがイベントタイプの処理をイベントフロー階層のどこで変更したかを判断できます。特定のイベントタイプが実際にイベントリスナーをトリガするかどうかを判別するには、willTrigger() を使用します。

hasEventListener()willTrigger() の違いは、hasEventListener() では自身が属するオブジェクトのみ検証され、willTrigger() では type パラメータで指定されたイベントのイベントフロー全体が検証されることです。

hasEventListener() が LoaderInfo オブジェクトから呼び出された場合は、呼び出し側がアクセスできるリスナーのみ考慮されます。

パラメータ
type:String — イベントのタイプです。

戻り値
Boolean — 指定したタイプのリスナーが登録されている場合は true、それ以外の場合は false です。

関連項目

removeEventListener()メソッド 
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

EventDispatcher オブジェクトからリスナーを削除します。対応するリスナーが EventDispatcher オブジェクトに登録されていない場合は、このメソッドを呼び出しても効果はありません。

パラメータ
type:String — イベントのタイプです。
 
listener:Function — 削除するリスナーオブジェクトです。
 
useCapture:Boolean (default = false) — リスナーが、キャプチャ段階、またはターゲットおよびバブリング段階に対して登録されたかどうかを示します。リスナーがキャプチャ段階だけでなくターゲット段階とバブリング段階にも登録されている場合は、removeEventListener() を 2 回呼び出して両方のリスナーを削除する必要があります。1 回は useCapture()true に設定し、もう 1 回は useCapture()false に設定する必要があります。

関連項目

willTrigger()メソッド 
public function willTrigger(type:String):Boolean

指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。指定されたタイプのイベントがこの EventDispatcher オブジェクトまたはその子孫に送出されたときに、イベントリスナーがイベントフローの任意の段階でトリガされる場合、このメソッドは true を返します。

hasEventListener() メソッドと willTrigger() メソッドの違いは、hasEventListener() では自身が属するオブジェクトのみ検証され、willTrigger() メソッドでは type パラメータで指定されたイベントのイベントフロー全体が検証されることです。

willTrigger() が LoaderInfo オブジェクトから呼び出された場合は、呼び出し側がアクセスできるリスナーのみ考慮されます。

パラメータ
type:String — イベントのタイプです。

戻り値
Boolean — 指定したタイプのリスナーがトリガされた場合は true、それ以外の場合は false です。
イベントの詳細
activateevent 
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.ACTIVATE

Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。

activate イベントオブジェクトの type プロパティの値を定義します。

メモ : このイベントは "キャプチャ段階" を経由せず、ターゲットが表示リストにあるかどうかに関わらず、ターゲットに直接送出されます。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetACTIVATE イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。
deactivateevent  
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.DEACTIVATE

Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。

deactivate イベントオブジェクトの type プロパティの値を定義します。

メモ : このイベントは "キャプチャ段階" を経由せず、ターゲットが表示リストにあるかどうかに関わらず、ターゲットに直接送出されます。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetDEACTIVATE イベントに対するリスナーが登録された任意の DisplayObject インスタンスです。