AIR プロファイルのサポート:この機能は、
1 つの ActionScript 拡張は次の 2 つの要素で構成されています。
ActionScript 拡張を作成する目的としては、AIR アプリケーションからデバイス固有の機能へのアクセスを実現することなどが考えられます。他にも、既存ネイティブコードを再利用したい場合や、ネイティブコードを使用して ActionScript コードよりも効率的に処理を実行したい場合などに ActionScript 拡張を作成することがあります。ActionScript 拡張を記述、ビルドおよびパッケージ化する方法について詳しくは、PDF ドキュメント『
ActionScript 拡張の ActionScript 側からネイティブ側にアクセスするには、ExtensionContext クラスを使用します。まず、ExtensionContext クラスのインスタンスを作成します。これを行うには、静的メソッド
ExtensionContext インスタンスの作成後、インスタンスの
ExtensionContext インスタンスの処理が完了したら、
ExtensionContext インスタンスは、拡張のネイティブ実装で何らかの非同期イベントが発生するときにネイティブコードが発行する StatusEvent イベントをリッスンできます。ExtensionContext クラスは EventDispatcher から派生するので、結果としてイベントを発行できます。
拡張がデバイスにインストールされているディレクトリにアクセスするために、また、ExtensionContext クラスには静的メソッド
注意:
ランタイムからネイティブ実装に通知され、関連するネイティブリソースがすべて解放されます。
拡張には、拡張の ActionScript コードからアクセスする画像などのリソースが含まれることがあります。また、コードには、拡張記述子ファイルで使用できる情報が必要な場合もあります(拡張のバージョン番号など)。このメソッドを使用して、拡張のベースディレクトリにアクセスできます。
デバイスの拡張の場所にかかわらず、常に拡張のファイルは、拡張のベースディレクトリに相対して同じ場所にあります。このメソッドが返す File インスタンスを使用して、拡張に含まれる特定のファイルを特定し、操作できます。
任意の ActionScript オブジェクトを ExtensionContext インスタンスに関連付けることができます。また、ネイティブ実装は、この ActionScript オブジェクトを取得および設定できます。そのため、
また、
ExternalInterface クラスを使用すると、HTML ページの JavaScript を使用することによって、Flash ランタイムで ActionScript 関数を呼び出すことができます。ActionScript 関数は値を返すことができ、JavaScript は、呼び出しの戻り値として即座にこの値を受け取ります。
この機能は、
ExternalInterface クラスは、次のブラウザーとオペレーティングシステムの組み合わせで使用してください。
Linux バージョン 9.0.31.0 以降用の Flash Player では、次のブラウザーで ExternalInterface クラスがサポートされます。
ExternalInterface クラスを利用するには、ユーザーの Web ブラウザーが、一部のブラウザーによってプラグインスクリプトとして公開されている ActiveX® または NPRuntime API のいずれかをサポートしている必要があります。ブラウザーおよびオペレーティングシステムの組み合わせが上記になくても、NPRuntime API がサポートされる場合、ExternalInterface クラスがサポートされます。
注意:HTML ページに内に SWF ファイルを埋め込むときには、
. - + ~~ / \
Flash Player アプリケーションに関する注意:Flash Player バージョン 9.0.115.0 以降では、
Flash Player アプリケーションに関する注意:ブラウザーで実行される Flash Player 10 以降では、このクラスをプログラムで使用してポップアップウィンドウを開く方法は有効でない場合があります。ブラウザー(およびブラウザーの設定)によってはポップアップウィンドウがブロックされる場合があり、すべてのポップアップウィンドウが表示される保証はありません。ただし、ユーザー操作の直接の結果として実行されるコード(マウスのクリックやキー入力イベントのイベントハンドラーなど)に限っては、このクラスを使用してポップアップウィンドウを開く方法が有効です。
ActionScript から、HTML ページに対して次のことを実行できます。
HTML ページの JavaScript から、次のことを実行できます。
Flash Player アプリケーションに関する注意:Flash Player は現在、HTML フォームに埋め込まれた SWF ファイルをサポートしていません。
AIR アプリケーションに関する注意:Adobe AIR では、ExternalInterface クラスを使用して、HTMLLoader コントロールに読み込まれた HTML ページの JavaScript とその HTML ページに埋め込まれた SWF コンテンツの ActionScript との間で通信できます。
注意:既存のコールバック関数に対して、closure 値に
注意:ブラウザーで実行されるローカルコンテンツでは、SWF ファイルとその埋め込み先の Web ページが local-trusted セキュリティサンドボックス内にある場合にのみ、
コンテナが HTML ページである場合、このメソッドは
コンテナが別の ActiveX コンテナの場合、このメソッドは、指定された名前で FlashCall ActiveX イベントを送出し、そのイベントはコンテナによって処理されます。
コンテナが Netscape プラグインをホストしている場合、新しい NPRuntime インターフェイス用のカスタムサポートを記述するか、HTML コントロールを埋め込んだ後にそのコントロール内にプレーヤーを埋め込むことができます。HTML コントロールを埋め込んだ場合、ネイティブコンテナアプリケーションに対する JavaScript インターフェイスを通じてプレーヤーと通信できます。
注意:ブラウザーで実行されるローカルコンテンツでは、SWF ファイルとその埋め込み先の Web ページ(存在する場合)が local-trusted セキュリティサンドボックス内にある場合にのみ、
Flash Player アプリケーションに関する注意:Flash Player 10 および Flash Player 9 Update 5 では、ポップアップブロッカーが有効になっている場合、一部の Web ブラウザーでこのメソッドが制限されます。このシナリオでは、このメソッドの呼び出しはマウスのクリックやキー入力などのユーザーイベントに応じて、イベントハンドラーで呼び出した場合にのみ成功します。
注意:HTML で外部 API を使用する場合、JavaScript メソッドを呼び出そうとする前に、HTML のロードが完了していることを必ず確認する必要があります。