主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

addlistener

クラス:处理

イベントソースにバインドされたイベントリスナーの作成

構文

el = addlistener (hSource EventName,回调)
el = addlistener (hSource PropertyName EventName,回调)
addlistener (___

説明

埃尔= addlistener (hSourceEventName回调は,ソースオブジェクトhSourceでトリガーされたときにイベントEventNameのリスナーを作成します。

hSourceが配列である場合,リスナーは配列hSource内のどのオブジェクトについても,指定されたイベントに応答します。回调はコールバック関数を参照する関数ハンドルです。

埃尔= addlistener (hSourcePropertyNameEventName回调は,事前定義プロパティイベントのうちいずれかのリスナーを作成します。事前定義されたプロパティイベントは4種類あります。

addlistener (___は,ハンドルなしでリスナーオブジェクトを作成します。この構文は,前述の任意の入力構文で使用できます。

イベント名 イベントが発生する時点
预设

プロパティの设置アクセスメソッドを呼び出す前の,プロパティ値が設定される直前

PostSet

プロパティ値が設定された直後

PreGet

プロパティの得到アクセスメソッドを呼び出す前の,プロパティ値のクエリが処理される直前

PostGet

プロパティ値がクエリに返された直後

入力引数

すべて展開する

イベントソースは,イベントのソースであるオブジェクト,あるいはソースオブジェクトの配列であり,ハンドル配列として指定します。

ソースオブジェクト上でトリガーされるイベントの名前。大文字と小文字を区別する,引用符付きのテキストとして指定します。プロパティイベントの場合,イベント名は4つの事前定義プロパティイベントのいずれかです。

データ型:字符|字符串

リスナーをトリガーするプロパティイベントをもつプロパティの名前。次の値のいずれかとして指定します。

  • 文字ベクトルまたは文字ベクトルの细胞配列(個々の文字ベクトルはhSourceのオブジェクトに定義されたプロパティの名前)

  • スカラーのmeta.propertyオブジェクト

  • meta.propertyオブジェクトの配列

hSourceがスカラーの場合にのみ,動的プロパティのプロパティイベントにリスナーを付加できます。hSourceが非スカラーである場合,プロパティはhSourceクラスに属さなければならず,(クラス定義にない)動的プロパティを含めることはできません。

プロパティイベントのリッスンを可能にするには,ソースプロパティを定義するクラスでGetObservableおよびSetObservableのプロパティ属性が設定されなければなりません。

関数ハンドルとして指定されたリスナーコールバック

データ型:function_handle

出力引数

すべて展開する

addlistenerが作成するリスナーオブジェクト。侦听器オブジェクトまたはevent.proplistenerオブジェクトのハンドルとして指定します。

すべて展開する

グラフィックス数字ウィンドウの颜色プロパティに関するプロパティリスナーを作成します。

无花果=图;propListener = addlistener(无花果,“颜色”“PostSet”@ (src evnt) disp (的颜色改变了));

颜色プロパティ値を黄色的に設定します。プロパティを設定すると,图に関するPostSetプロパティイベントがトリガーされます。イベントソースオブジェクトは、ハンドル无花果によって参照される特定の图です。

集(图,“颜色”“黄色”

ヒント

  • リスナーのハンドルを含む変数(埃尔など)の再定義やクリアでは,リスナーは削除されません。イベントオブジェクト(hSource)にはまだ,event.listenerオブジェクトへの参照があります。addlistenerは,リスナーのライフサイクルをイベントのソースであるオブジェクトに関連付けます。

  • リスナーはイベントソースのライフサイクルにバインドされますが,次の場合はイベントソースの破棄後も残ります。

    • リスナーへの1つ以上の参照が他の変数内にある(作成時に指定した場合はリスナーのハンドルを含む)。

    • リスナーが他のイベントソースに関連付けられている。

  • リスナーを削除するには,addlistenerにより返されるリスナーオブジェクトを削除します。以下に例を示します。

    删除(el)

    これは,ハンドルクラスの删除メソッドを呼び出して,ワークスペースからオブジェクトを削除し,リスナーを削除します。

  • イベントオブジェクトに関連付けられていないリスナーを定義するには,event.listenerコンストラクターを使用して,直接リスナーを作成します。

代替方法

リスナーオブジェクトのライフサイクルをソースオブジェクトのライフサイクルから独立させる必要がある場合は,侦听器を使用してリスナーを作成します。

R2008aで導入