パッケージ | flash.external |
クラス | public final class ExtensionContext |
継承 | ExtensionContext EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
拡張がデバイスにインストールされているディレクトリにアクセスするために、また、ExtensionContext クラスには静的メソッド getExtensionDirectory()
が用意されています。また、拡張のネイティブ実装でデータを共有するために、プロパティ actionScriptData
も用意されています。
注意:
extendedDesktop
プロファイルを使用する AIR アプリケーションでは、NativeProcess クラスを使用してネイティブプロセスを実行できます。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
actionScriptData : Object
このコンテキストに関連する ActionScript オブジェクトです(存在する場合)。 | ExtensionContext | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object |
メソッド | 定義元 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
functionName で指定されているネイティブ関数を呼び出します。 | ExtensionContext | ||
[静的]
指定した拡張 ID およびコンテキストタイプに対して ExtensionContext インスタンスを作成します。 | ExtensionContext | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
この ExtensionContext インスタンスを破棄します。 | ExtensionContext | ||
[静的]
拡張がデバイスにインストールされているディレクトリを返します。 | ExtensionContext | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
ExtensionContext クラスには、Adobe AIR のネイティブ拡張のネイティブ実装内にある関数を呼び出すためのインタフェースが用意されています。 | ExtensionContext |
actionScriptData | プロパティ |
actionScriptData:Object
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
このコンテキストに関連する ActionScript オブジェクトです(存在する場合)。
任意の ActionScript オブジェクトを ExtensionContext インスタンスに関連付けることができます。また、ネイティブ実装は、この ActionScript オブジェクトを取得および設定できます。そのため、actionScriptData
を使用して、拡張の ActionScript 側とネイティブ側でデータを共有できます。
また、actionScriptData
の値を null
に設定できます。
実装
public function get actionScriptData():Object
public function set actionScriptData(value:Object):void
例外
IllegalOperationError — メソッド dispose() は、この ExtensionContext インスタンスで呼び出し済みです。
|
call | () | メソッド |
public function call(functionName:String, ... args):Object
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
functionName
で指定されているネイティブ関数を呼び出します。追加の引数があれば、ネイティブ関数に渡されます。
パラメーター
functionName:String — ネイティブ実装の関数を示す名前です。この名前はネイティブ関数の実際の名前とは限りませんが、拡張のActionScript 側とネイティブ側の間で合意した名前です。
| |
... args — ネイティブ関数の引数のリストです。これらの引数には、ActionScript オブジェクト(プリミティブタイプまたは ActionScript クラスオブジェクト)を指定できます。引数のタイプおよび順序は、拡張の ActionScript 側とネイティブ側の間で合意されます。
|
Object — ネイティブ関数から返された値です。ネイティブ関数が値を返さない場合、または無効なオブジェクト参照を返す場合、戻り値は null です。
|
例外
ArgumentError — functionName で指定されている名前に関連する関数はありません。
| |
IllegalOperationError — メソッド dispose() は、この ExtensionContext インスタンスで呼び出し済みです。このエラーは、ネイティブ関数が無効なプロジェクト参照を返す場合にもスローされます。
|
createExtensionContext | () | メソッド |
public static function createExtensionContext(extensionID:String, contextType:String):ExtensionContext
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
指定した拡張 ID およびコンテキストタイプに対して ExtensionContext インスタンスを作成します。
パラメーター
extensionID:String — 拡張の拡張 ID です。この ID は、拡張記述子ファイルの id エレメントと同じ値です。アプリケーション開発者は、アプリケーション記述子ファイルの extensionID エレメントでもこの値を使用します。すべての拡張は、単一のグローバル名前空間を共有します。そのため、名前の競合を回避するには、拡張 ID の逆 DNS 表記法を使用します。
| |
contextType:String — 拡張のコンテキストタイプです。コンテキストタイプに応じて、ネイティブ実装は異なる初期化を実行できます。例えば、ActionScript 側が呼び出すことができる、別の使用可能なネイティブ関数セットを指定するネイティブ実装もあります。コンテキストタイプの値は、拡張の ActionScript 側とネイティブ側の間で合意した任意の文字列です。多くの場合、簡易な拡張では異なるコンテキストタイプを使用しません。このような場合、contextType 値に空の文字 "" または null を渡します。
|
ExtensionContext — 新しい ExtensionContext インスタンスです。提供された extensionID 値を持つ利用可能な拡張子がない場合、または提供された extensionID の extension.xml ドキュメントに指定されたコンテンツ初期化関数が見つからないか、または実行できない場合は、null を返します。
|
例外
ArgumentError — extensionID パラメーターに null または有効でない拡張 ID が指定されています。
|
dispose | () | メソッド |
public function dispose():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
この ExtensionContext インスタンスを破棄します。
ランタイムからネイティブ実装に通知され、関連するネイティブリソースがすべて解放されます。dispose()
の呼び出し後は、コードから call()
メソッドを呼び出すことや、actionScriptData
プロパティを取得または設定することはできなくなります。
getExtensionDirectory | () | メソッド |
public static function getExtensionDirectory(extensionID:String):File
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
拡張がデバイスにインストールされているディレクトリを返します。
拡張には、拡張の ActionScript コードからアクセスする画像などのリソースが含まれることがあります。また、コードには、拡張記述子ファイルで使用できる情報が必要な場合もあります(拡張のバージョン番号など)。このメソッドを使用して、拡張のベースディレクトリにアクセスできます。
デバイスの拡張の場所にかかわらず、拡張のファイルは、拡張のベースディレクトリに相対して常に同じ場所にあります。このメソッドが返す File インスタンスを使用して、拡張に含まれる特定のファイルを特定し、操作できます。
拡張ディレクトリの構造は次のとおりです。
extension base directory/ platform independent files META-INF/ ANE/ extension.xml platform name/ platform-dependent files and directories
拡張ディレクトリの場所は、次のように、拡張がアプリケーションバンドルを通して使用できるか、デバイスバンドルを通して使用できるかによって異なります。
- アプリケーションバンドルでは、拡張ディレクトリはアプリケーションディレクトリ内に配置されています。
- デバイスバンドルでは、拡張ディレクトリの場所はデバイスによって異なります。
例外として、iOS デバイス用のネイティブ拡張の場合は、getExtensionDirectory()
を使用します。これらの拡張のリソースは、拡張ディレクトリではなく、アプリケーションのトップレベルのディレクトリに配置されています。
パラメーター
extensionID:String — 拡張の拡張 ID です。この ID は、createExtensionContext() の extensionID パラメーターと同じ値です。
|
File — 拡張がインストールされているディレクトリの File インスタンスです。
|
例外
TypeError — パラメーター extensionID は null 以外にする必要があります。
| |
ArgumentError — 引数 extensionID に指定した値は無効です。 ディレクトリが存在しません。
|
status | イベント |
flash.events.StatusEvent
プロパティ StatusEvent.type =
flash.events.StatusEvent.STATUS
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
ExtensionContext クラスには、Adobe AIR のネイティブ拡張のネイティブ実装内にある関数を呼び出すためのインタフェースが用意されています。このクラスは、拡張に含まれる ActionScript クラスにのみ使用できます。
AIR プロファイルサポート:この機能は AIR 3 以降のモバイルデバイス上でサポートされます。また、デスクトップデバイス上では、extendedDesktop
デバイスプロファイルを使用するアプリケーションにおいて、AIR 3 以降でサポートされます。AIR for TV デバイス上では、extendedTV
デバイスプロファイルを使用するアプリケーションにおいて、AIR 2.5 以降でサポートされます。
ネイティブ拡張は、次の要素を組み合わせたものです。
- ActionScript クラス
- ネイティブコードネイティブコードは、デバイス上のランタイム外で実行されるコードです。例えば、C で記述されたコードはネイティブコードです。
ネイティブ拡張は次の目的で作成できます。
- AIR アプリケーションに対してデバイス固有の機能へのアクセス権を付与します。
- 既存のネイティブコードを再利用します。
- ネイティブコードを使用して、ActionScript コードを使用した場合よりも処理効率を上げます。
拡張の ActionScript 側からネイティブ側にアクセスするには、ExtensionContext クラスを使用します。まず、ExtensionContext クラスのインスタンスを作成します。これを行うには、静的メソッド ExtensionContext.createExtensionContext()
を呼び出します。
ExtensionContext インスタンスの作成後、インスタンスの call()
メソッドを使用してネイティブ関数を呼び出します。
ExtensionContext インスタンスの処理が完了したら、dispose()
を呼び出して、関連するネイティブリソースをすべて解放します。dispose()
を明示的に呼び出さないと、インスタンスの破棄時にランタイムガベージコレクターによって dispose()
が呼び出されます。dispose()
の明示的な呼び出しは、通常、ガベージコレクター処理の待機よりもはるかに早く発生します。
ExtensionContext インスタンスは、拡張のネイティブ実装で何らかの非同期イベントが発生するときにネイティブコードが発行する StatusEvent イベントをリッスンできます。ExtensionContext クラスは EventDispatcher から派生するので、結果としてイベントを発行できます。
type
プロパティ(status
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
code | オブジェクトのステータスの説明です。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
level | "status" 、"warning" 、"error" など、メッセージのカテゴリです。 |
target | そのステータスをレポートするオブジェクトです。 |
Tue Jun 12 2018, 10:34 AM Z