event.listener クラス
名前空間: event
リスナー オブジェクトを定義するクラス
説明
event.listener
クラスは、リスナー オブジェクトを定義します。リスナー オブジェクトは、イベントがトリガーされたときに、コールバック関数を実行することによって特定のイベントに応答します。event.listener
クラスを使用してリスナー オブジェクトを作成できます。また、ハンドルの addlistener
メソッドと listener
メソッドを使用してリスナーを作成できます。
ハンドルの notify
メソッドを使用してイベントをトリガーします。
event.listener
クラスは handle
クラスです。
作成
説明
eListener = event.listener(
は、指定されたソース オブジェクトの指定されたイベント名に関するリスナーを作成し、コールバック関数への関数ハンドルを識別します。eventSource
,eventName
,callbackFcn
)
eventSource
がオブジェクト ハンドルの配列である場合、リスナーは配列内にあるすべてのオブジェクトについて、指定された名前をもつイベントに応答します。
入力引数
eventSource
— イベント ソース
ハンドル オブジェクト | ハンドル オブジェクトの cell 配列
イベント ソース。ハンドル オブジェクト配列、またはハンドル オブジェクトの cell 配列として指定します。クラスが異なるためにソース オブジェクトの配列を作成できない場合は、cell 配列を使用します。すべてのソース オブジェクトが、指定されるイベントを定義しなければなりません。
eventName
— イベント名
文字ベクトル | string スカラー
イベント名。イベントのリテラル名として指定します。
callbackFcn
— コールバック関数
関数ハンドル
コールバック関数。関数ハンドルとして指定します。詳細については、リスナー コールバックの構文を参照してください。
プロパティ
Source
— イベント ソース オブジェクト
ハンドル オブジェクト配列、またはハンドル オブジェクトの cell 配列
イベント ソース オブジェクト。イベントがトリガーされたときにこのリスナーが応答するオブジェクトのハンドルとして指定します。
属性:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
データ型: handle object
| cell array
EventName
— イベント名
文字ベクトル | string スカラー
指定されたソース オブジェクトでトリガーされたときにリスナーが応答するイベントの名前
属性:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
データ型: char
| string
Callback
— イベント コールバック
関数ハンドル
イベント コールバック。関数ハンドルとして指定します。この関数はイベントがトリガーされたときに実行されます。
属性:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
データ型: function_handle
Enabled
— リスナーを有効または無効にする
true (既定値) | false
Enabled
が true
(既定) に設定されている場合、イベントが発生するとコールバックが実行されます。このリスナーのコールバックの実行を無効にするには、Enabled
を false
に設定します。
属性:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
データ型: logical
Recursive
— コールバックを再帰的に実行する
false (既定値) | true
false
(既定) の場合、リスナーはそのコールバックを再帰的に実行しません。したがって、コールバックがそれ自身のイベントをトリガーした場合、リスナーは再応答しません。
このプロパティが true
に設定されている場合、リスナー コールバックは、コールバックをトリガーした同じイベントを発生させることができます。この方法では無限再帰が発生し、最終的に MATLAB® の再帰制限によりエラーがスローされると終了します。
属性:
GetAccess | public |
SetAccess | public |
GetObservable | true |
SetObservable | true |
データ型: logical
例
リスナーの定義
配列 textReader
内のオブジェクトに対してトリガーされ、EOLCallback
という名前のコールバック関数を使用する EOL
という名前のイベントのリスナーを定義します。
listenerHandle = event.listener(textReader,"EOL",@EOLCallback);
詳細
リスナー コールバックのシグネチャ
リスナー コールバック関数は、少なくとも 2 つの入力引数を受け入れなければなりません。
function CallbackFunction(source,eventData) ... end
source
は、イベントのソースであるオブジェクトです。eventData
は、event.EventData
オブジェクト、またはevent.EventData
のサブクラスのインスタンスです。
リスナー コールバックの詳細については、リスナー コールバックの構文、コールバックの実行およびカスタム イベント データの定義を参照してください。
リスナーのライフサイクルの制限
リスナー オブジェクトを作成するには、event.listener
クラス コンストラクターを使用するか、ハンドル クラスの addlistener
メソッドまたは listener
メソッドを使用します。
addlistener
を使用してリスナーを作成する場合、イベント ソース オブジェクトはリスナーへの参照を保持します。ソースが破棄されると、MATLAB はリスナーも破棄します。リスナーのライフサイクルを管理するために、リスナー オブジェクトに参照を格納する必要はありません。
event.listener
または listener
メソッドを使用してリスナーを作成する場合、リスナーのライフサイクルはイベント ソースと結合されません。イベント ソース オブジェクトがリスナーへの参照を保持しないので、リスナーのライフサイクルをより詳細に制御できます。ただし、リスナー オブジェクトがスコープ外になると、リスナーは存在しなくなります。
リスナーのライフサイクルの詳細については、リスナーのライフサイクルを参照してください。
リスナーの削除
リスナー オブジェクトで delete(lh)
が呼び出されると、リスナーが存在できなくなります。すなわち、イベントが発生してもリスナー コールバック関数が実行されなくなります。
リスナーの無効化
リスナーは、リスナーの Enabled
プロパティの値を設定することで、有効または無効にできます。
バージョン履歴
R2008a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)