FREContextInitializer()

AIR 3.0 以降

シグネチャ

typedef void (*FREContextInitializer)( 
        void*                        extData, 
        const uint8_t*           ctxType, 
        FREContext               ctx, 
        uint32_t*                numFunctionsToSet, 
        const FRENamedFunction** functionsToSet 
);

パラメーター

extData
ネイティブ拡張の拡張データへのポインター。 FREInitializer() 関数がこの拡張データを作成しました。

ctxType
コンテキストタイプを特定する文字列。拡張で、必要に応じてこの文字列を定義します。コンテキストタイプでは、拡張の ActionScript 側とネイティブ側とで合意した意味を指定できます。拡張がコンテキストタイプを使用しない場合は、この値に Null を設定できます。この値は、null の終端文字を含む UTF-8 エンコーディングの文字列です。

ctx
FREContext 変数。ランタイムがこの値を作成し、 FREContextInitializer() に渡します。 FREContext を参照してください。

numFunctionsToSet
unint32_t へのポインター。 numFunctionsToSet を、 functionsToSet パラメーターの関数の数を含む unint32_t 変数に設定します。

functionsToSet
FRNamedFunction エレメントの配列へのポインター。各エレメントにはネイティブ関数と、ActionScript 側で ExtensionContext インスタンスの call() メソッド内で使用する文字列へのポインターが含まれています。 FRENamedFunction を参照してください。

戻り値

なし。

説明

ActionScript 側で ExtensionContext.createExtensionContext() を呼び出すと、ランタイムがこのメソッドを呼び出します。このメソッドを実装する目的は次のとおりです。

  • 拡張コンテキストを初期化します。この初期化方法は、 ctxType パラメーターで渡されたコンテキストタイプによって異なります。

  • ctx パラメーターの値を保存して、ネイティブ実装による FREDispatchStatusEventAsync() に対する呼び出しで利用できるようにします。

  • ctx パラメーターを使用して、コンテキスト固有データを初期化します。このデータには、コンテキスト固有のネイティブデータおよびコンテキスト固有の ActionScript データが含まれます。

  • FRENamedFunction オブジェクトの配列を設定します。 functionsToSet パラメーター内の配列へのポインターを返します。 numFunctionsToSet パラメーター内の配列エレメント数へのポインターを返します。

FREContextInitializer() メソッドの動作は、 ctxType パラメーターによって異なります。ActionScript 側では、 ExtensionContext.createExtensionContext() にコンテキストタイプを渡すことができます。次に、ランタイムがこの値を FREContextInitializer() に渡します。通常、この関数はこのコンテキストタイプを使用して、ActionScript 側で呼び出すことのできる、ネイティブ実装内のメソッドセットを選択します。各コンテキストタイプは様々なメソッドセットに対応します。