このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
コールバックとは,リスナーがイベントの通知を受け取ると実行される関数のことです。リスナーを作成するときに,コールバック関数を参照する関数ハンドルをaddlistener
または侦听器
に渡します。
すべてのコールバック関数は,少なくとも2つの引数を受け取る必要があります。
イベントのソースであるオブジェクトのハンドル
事件。EventData
オブジェクトまたは事件。EventData
クラスから派生したオブジェクト
関数functionName
の場合
lh = addlistener (eventSourceObj,“EventName”@functionName)
クラスのオブジェクトobj.methodName
で呼び出された通常のメソッドの場合
lh = addlistener (eventSourceObj,“EventName”@obj.methodName)
静的メソッドClassName.methodName
の場合
lh = addlistener (eventSourceObj,“EventName”@ClassName.methodName)
パッケージ内の関数PackageName.functionName
の場合
lh = addlistener (eventSourceObj,“EventName”@PackageName.functionName)
必要な引数を受け取るようコールバック関数を定義します。
函数evnt callbackFunction (src)……结束
イベントソースおよびイベントデータ引数を使用しない場合,これらの入力を無視するよう関数を定義できます。
函数callbackFunction(~ ~)…结束
メソッドの場合は,次のようになります。
函数callbackMethod (obj, src, evnt)……结束
MATLAB®により渡されるソースとイベントデータの引数以外にも引数をコールバックに渡すには,無名関数を使用します。無名関数では,現在のワークスペース内で利用できるすべての変数を使用することができます。
以下は,通常のメソッドの構文です。入力引数 (__arg1…argn
)は,addlistener
を呼び出すコンテキスト内で定義されなければなりません。
lh = addlistener (src,“EventName”@ (src evnt) obj.callbackMethod (src, evnt __arg1、…argn)
变长度输入宗量
を使用してコールバック関数を定義します。
函数callbackMethod(src, event,varargin) arg1 = varargin{1};...argn =变长度输入宗量{n};...结束
無名関数に関する一般的な情報については,無名関数を参照してください。
TestAnonyFcn
クラスにより,追加の引数を使用した無名関数の使用方法を示します。リスナーコールバックが入力引数を表示し,MATLABによるコールバックメソッドの呼び出し方法を示しています。
classdefTestAnonyFcn <处理事件更新结束方法函数obj = TestAnonyFcn t = datestr(now); / /删除对象addlistener (obj,“更新”@ (src evnt) obj.evntCb (src evnt t));结束函数triggerEvnt (obj)通知(obj,“更新”)结束结束方法(访问=私人)函数evntCb (~, ~, evnt变长度输入宗量)disp ([“输入数字:”num2str(输入参数个数)])disp (evnt.EventName) disp变长度输入宗量({}):结束结束结束
オブジェクトを作成し,triggerEvt
メソッドを呼び出してイベントをトリガーします。
obj = TestAnonyFcn;obj.triggerEvnt;
输入数量:4更新01-Jul-2008 17:19:36