このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
関数event.hasListener
を使用して,特定のイベントにリスナーがあるかどうかを判定します。event.hasListener
はイベントソースオブジェクトの配列とイベント名を入力引数として受け入れます。この関数は,配列内の各オブジェクトの指定されたイベントに対するリスナーが存在するかどうかを示す論理値の配列を返します。
メモ
呼び出されたときに,event.hasListener
にはイベントのNotifyAccess
がなければなりません。つまり,対象のイベントに対する通知
を呼び出すことができるコンテキストでevent.hasListener
を呼び出します。
イベントに対するリスナーがない場合,event.hasListener
を使用してイベントの通知が送信されないようにします。たとえば,カスタムイベントデータの作成によって多くのリソースが消費される場合や,イベントが繰り返しトリガーされる場合,以下の手順を実行する前にevent.hasListener
を使用してリスナーをテストします。
event.hasListener
を使用して,イベントデータの作成と通知
の呼び出しに条件を付けます。オブジェクト配列一个
に対して,イベントデータを作成し,イベントをトリガーする前にリスナーがあるかどうかを判定します。
如果任何(event.hasListener (,'NameOfEvent
')) evt = MyCustomEventData(…);通知(,'NameOfEvent
'(evt)结束
event.hasListener
によって返される値での論理インデックス付けを使用して,イベントを選択的にトリガーします。リスナーをもつ配列要素についてのみイベントの通知を送信します。
印第安纳州= event.hasListeners (,'NameOfEvent
');通知((印第安纳州),'NameOfEvent
'(evt)
入力オブジェクトの配列が異種混合の場合,配列のクラスは指定されたイベントを定義しなければなりません。配列のすべてのオブジェクトで定義されているイベントに対してのみリスナーをクエリできます。
たとえば,次の図で,クラス性能指标
、SpecificB
、SpecificC
のオブジェクトで構成される異種混合配列のクラスはRootSuperclass
です。したがって,event.hasListener
は,RootEvent
イベントに対するリスナーのみを検出できます。すべての配列要素に共通の唯一のイベントであるためです。
非常に“特定”なこれら3つのクラスを使用して異種混合配列を作成します。
het =[性能指标、SpecificB SpecificC];类(het)
ans RootSuperclass
事件(het)
类RootSuperclass RootEvent的事件
event.hasListener
は,配列の一部(すべてではない)のオブジェクトによって定義されたイベントに対するリスナーがあるかどうかを判定できません。
event.hasListener (het,“ClassAEvent”)
错误使用事件。没有为类“RootSuperclass”定义hasListener事件“ClassAEvent”。
配列にインデックスを付けて,異種混合配列の個々のオブジェクトに特定のイベントに対して定義されたリスナーがあるかどうかを判定します。
event.hasListener (het (1),“ClassAEvent”)
異種混合配列のクラスの判定に関する詳細については,異種混合クラス階層の設計を参照してください。