FREFunction()

AIR 3.0 以降

シグネチャ

typedef FREObject (*FREFunction)( 
        FREContext             ctx, 
        void*            functionData, 
        uint32_t             argc, 
        FREObject             argv[] 
);

パラメーター

ctx
この拡張コンテキストを表す FREContext 変数。 FREContext を参照してください。

functionData
void*。このポインターは、FRENamedFunction 構造体で FREFunction 関数に関連付けたデータをポイントします。FREContextInitializer() の実装は、出力パラメーター内で、FRENamedFunction 構造体のセットをランタイムに渡します。ランタイムが FREFunction 関数を呼び出すときに、関数にこのデータポインターを渡します。 FRENamedFunction を参照してください。

argc
argv パラメーター内のエレメント数。

argv
FREObject 変数の配列。これらのポインターは、ExtensionContext インスタンスの call() メソッドへの ActionScript の呼び出しで、関数名の後に渡されるパラメーターに対応します。

戻り値

FREObject 変数。デフォルトの戻り値は、 FRE_INVALID_OBJECT 型の FREObject です。

説明

拡張内のネイティブ関数ごとに、FREFunction シグネチャを使用して関数を実装します。関数名は、 FREContextInitializer() 関数の functionsToSet パラメーターに返される配列内の、FRENamedFunction エレメントの function フィールドに対応します。

ActionScript 側で ExtensionContext インスタンスの call() メソッドを呼び出すと、ランタイムがこの FREFunction 関数を呼び出します。 call() の最初のパラメーターは、FRENamedFunction エレメントの name フィールドと同じです。それ以降の call() パラメーターは、 argv 配列内の FREObject 変数に対応します。

FREObject 変数を返すには、FREFunction を定義します。FREObject 変数の型は、 call() メソッドが返す ActionScript の型に対応します。FREFunction が戻り値を持たない場合、デフォルトの戻り値は FRE_INVALID_OBJECT 型の FREObject 変数です。このデフォルトの戻り値の結果、ActionScript 側では call() null を返します。

ctx パラメーターは次の場合に使用します。

  • 拡張に関連付けるデータを取得または設定する場合。このデータは、ネイティブコンテキストデータと ActionScript コンテキストデータのどちらの可能性もあります。 コンテキスト固有データ を参照してください。

  • ActionScript 側の ExtensionContext インスタンスに非同期イベントを送出する場合。 FREDispatchStatusEventAsync() を参照してください。

FREObject パラメーターおよび戻り値を操作する場合は、 ユーザー使用関数 の関数を使用します。