このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
イベントが発生したときに特定の情報にアクセスするリスナーコールバック関数を作成するとします。この例では,カスタムのイベントデータを作成することでその方法を説明します。
イベントは,イベントデータ引数を,指定した関数に渡すことによって,リスナーのコールバック関数に情報を提供します。既定では,MATLAB®は事件。EventData
オブジェクトをリスナーコールバックに渡します。このオブジェクトは,2つのプロパティをもちます。
EventName
——このオブジェクトによりトリガーされるイベント名。
源
——イベントをトリガーするオブジェクトのハンドル。
事件。EventData
クラスをサブクラス化することによって,リスナーコールバックに追加の情報を提供します。
追加データを含めるよう,サブクラスでプロパティを定義する。
追加データを引数として受け取るコンストラクターを定義する。
ConstructOnLoad
クラス属性を設定する。
サブクラスコンストラクターを通知
メソッドへの引数として使用し,イベントをトリガーする。
SimpleEventClass
は,ある範囲を超える値にプロパティが設定されるとそこからイベントをトリガーする,プロパティの设置メソッド(プロパティの设置メソッドを参照)を定義します。属性集メソッドは以下の操作を実行します。
オリジナルのプロパティ値を保存する
指定した値にプロパティを設定する
指定した値が10よりも大きい場合,集メソッドは溢出
イベントをトリガーする
SpecialEventDataClass
オブジェクトにある元のプロパティ値と他のイベントデータを通知
メソッドに渡す
classdefSimpleEventClass <处理属性Prop1 = 0结束事件溢出结束方法函数set. pro1 (obj,value) orgvalue = obj. pro1;obj。Prop1 =价值;如果(obj。Prop1 > 10)%使用自定义事件数据触发事件通知(obj,“溢出”SpecialEventDataClass (orgvalue));结束结束结束结束
イベントデータは,常に事件。EventData
オブジェクトに含まれます。SpecialEventDataClass
は,事件。EventData
をサブクラス化することで,オリジナルのプロパティ値をイベントデータに追加します。
classdef(ConstructOnLoad) SpecialEventDataClass <事件。EventData属性OrgValue = 0结束方法函数eventData = SpecialEventDataClass(value)OrgValue =价值;结束结束结束
溢出
イベントをリッスンするには,SimpleEventClass
クラスのインスタンスにリスナーを付加します。リスナーを作成するには,addlistener
メソッドを使用します。イベントがトリガーされたときに実行するリスナーに対しても、コールバック関数を定義しなければなりません。
関数setupSEC
は,SimpleEventClass
クラスをインスタンス化し,オブジェクトにリスナーを追加します。この例では,リスナーコールバック関数はeventData
引数に含まれている情報を表示します。この引数はSpecialEventDataClass
オブジェクトです。
函数sec = setupSEC sec = SimpleEventClass;addlistener(秒,“溢出”@overflowHandler)函数overflowHandler (eventSrc eventData) disp (“Prop1的价值溢出了!”) disp ([它的值是:num2str (eventData.OrgValue)]) disp (['其当前值为:'num2str (eventSrc.Prop1)))结束结束
SimpleEventClass
オブジェクトを作成し,リスナーを追加します。
秒= setupSEC;sec.Prop1 = 5;sec.Prop1 = 15;%监听器触发回调
Prop1的值溢出了!当前值为:15