ActionScript 側で、ExtensionContext インスタンスの
call()
メソッドを呼び出すことで、ユーザー実装の C 関数を呼び出します。
call()
メソッドには、次のパラメーターがあります。
-
関数名。この名前は、コンテキスト初期化関数の出力パラメーターに設定したものです。この名前は、ActionScript 側とネイティブ側の間で合意した、任意の文字列です。通常、実際のネイティブ C 関数名と同じ名前です。ただし、ランタイムが任意の名前と実際の関数を関連付けるため、これらの名前は異なる場合があります。
-
ネイティブ関数の引数のリスト。これらの引数には、ActionScript オブジェクト(プリミティブ型または ActionScript クラスオブジェクト)を指定できます。
同じ関数シグネチャの
FREFunction()
を使用して、各ネイティブ関数を定義します。ランタイムは各ネイティブ関数に次のパラメーターを渡します。
-
FREContext 値。ネイティブ関数はこの値を使用して、コンテキスト固有データにアクセスし、そのデータを設定できます。また、ネイティブ実装は FREContext 値を使用して、ActionScript 側に非同期イベントを送出します。
-
関数に関連付けられたデータへのポインター。このデータは任意のネイティブデータです。ランタイムがネイティブ関数を呼び出すときに、関数にこのデータポインターを渡します。
-
関数パラメーター数。
-
関数パラメーター。各関数パラメーターは、FREObject 型です。これらのパラメーターは ActionScript クラスオブジェクトまたはプリミティブデータ型に対応します。
ネイティブ関数は FREObject 型の戻り値も持っています。ランタイムは、対応する ActionScript オブジェクトを、ExtensionContext
call()
メソッドの戻り値として返します。
注意:
ネイティブ関数は非表示にせず、デフォルトの表示を使用してください。
次のシーケンス図に、AIR アプリケーションが関数呼び出しを行った結果、
FREFunctionF()
という名前のネイティブ C 関数が呼び出される様子を示します。この例では、C 関数は以下を実行します。
注意:
C 関数
FREFunctionF()
の動作は、呼び出しシーケンスを示すサンプルの動作にすぎません。
|
|
|