External API 使用の基本

Flash Player 9 以降、Adobe AIR 1.0 以降

Adobe® Flash® Professional を使用して SWF プロジェクターを作成する際など、SWF ファイルが単独で実行されることもありますが、ほとんどの場合、SWF アプリケーションは他のアプリケーションの埋め込みエレメントとして実行されます。通常、SWF が含まれているコンテナは HTML ファイルですが、稀にデスクトップアプリケーションのユーザーインターフェイスの全部または一部として SWF ファイルが使用されることがあります。

より高度なアプリケーションで作業するようになると、SWF ファイルとコンテナアプリケーションの間の通信設定が必要になるでしょう。 例えば、一般的には、Web ページで HTML 形式でテキストなどの情報を表示させ、SWF ファイルでチャートやビデオなどの動的かつ視覚的なコンテンツを表示させます。この場合、Web ページ上のボタンを押すと SWF ファイルも変更されるようにしたいと思うかもしれません。 ActionScript に含まれる External API というメカニズムにより、SWF ファイル内の ActionScript とコンテナアプリケーションに含まれるその他のコード間におけるこのような通信が容易になります。

重要な概念と用語

次の参照リストに、この機能に関連のある重要な用語について説明します。

コンテナアプリケーション
Web ブラウザー内の HTML ページが Flash Player コンテンツを含む場合や、Web ページ内に SWF を読み込む AIR アプリケーションのように、SWF ファイルを実行する Flash Player を含むアプリケーション。

プロジェクター
SWF コンテンツと埋め込み Flash Player を含む、実行可能ファイル。Flash Professional またはスタンドアローン Flash Player を使用して、プロジェクター ファイルを作成できます。プロジェクターは通常、SWF ファイルを CD-ROM で配布する場合や、ダウンロードサイズが問題にならず、ユーザーのコンピューターに Flash Player がインストールされているかどうかにかかわらず確実に SWF ファイルが実行されるようにしたいと SWF 作成者が考えているような状況で使用されます。

プロキシ
あるアプリケーション(「外部アプリケーション」)のコードを他のアプリケーション(「呼び出しアプリケーション」)に代わって呼び出す仲介者となるアプリケーションまたはコード。呼び出しアプリケーションに値を返します。プロキシは次のような様々な目的で使用されます。
  • 呼び出しアプリケーションにおけるネイティブ関数の呼び出しを、外部アプリケーションで理解可能なフォーマットに変換することにより、外部関数の呼び出しプロセスを簡単にする。

  • 呼び出し元と外部アプリケーションとの直接通信を防止する、セキュリティおよびその他の制約に対処する。

直列化
オブジェクトやデータ値を、2 つのプログラミングシステム間(インターネット上、1 台のコンピューターで実行中の 2 つの異なるアプリケーション間など)のメッセージにおいて値を受け渡しできるフォーマットに変換すること。

コード例の使用

この章のコードの多くは、デモンストレーション目的の小さなコードであり、完全な実用例または値をチェックするコードではありません。External API を使用するには ActionScript コードおよびコンテナアプリケーション内のコードを作成する必要があることが定義されているので、サンプルをテストするには、コンテナ(SWF を含んだ Web ページなど)を作成して、コードリストを使用してコンテナとやり取りする必要があります。

ActionScript と JavaScript 間の通信の例をテストするには:

  1. Flash Professional を使用して新規のドキュメントを作成し、コンピューターに保存します。

  2. メインメニューからファイル/パブリッシュ設定を選択します。

  3. パブリッシュ設定ダイアログボックスの「フォーマット」タブで、「Flash」および「HTML」チェックボックスが選択されていることを確認します。

  4. 「パブリッシュ」ボタンをクリックします。同じフォルダーに、ドキュメントを保存したときと同じ名前で SWF ファイルと HTML ファイルが生成されます。 「OK」をクリックして、パブリッシュ設定ダイアログボックスを閉じます。

  5. 「HTML」チェックボックスを選択解除します。 これにより HTML ページが生成されるので、その HTML ページを変更して、適切な JavaScript コードを追加します。 「HTML」チェックボックスを選択解除すると、HTML ページを変更してから SWF ファイルをパブリッシュするときに、Flash により変更が上書きされることはありません。

  6. 「OK」をクリックして、パブリッシュ設定ダイアログボックスを閉じます。

  7. HTML またはテキストエディターアプリケーションで、SWF ファイルをパブリッシュしたときに Flash で作成された HTML ファイルを開きます。HTML ソースコードで script タグの開始タグと終了タグを追加し、サンプルコードリストからそのタグを JavaScript コードにコピーします。

    <script> 
    // add the sample JavaScript code here 
    </script>
  8. HTML ファイルを保存して、Flash に戻ります。

  9. タイムラインのフレーム 1 のキーフレームを選択して、アクションパネルを開きます。

  10. ActionScript コードリストを スクリプトペインにコピーします。

  11. メインメニューからファイル/パブリッシュを選択し、変更内容を使用して SWF ファイルを更新します。

  12. Web ブラウザーで、編集した HTML ページを開いてページを表示し、ActionScript と HTML ページ間の通信をテストします。

ActionScript と ActiveX コンテナ間の通信の例をテストするには:

  1. Flash Professional を使用して新規のドキュメントを作成し、コンピューターに保存します。コンテナアプリケーションが SWF ファイルを検索する宛先のフォルダーに保存することをお勧めします。

  2. メインメニューからファイル/パブリッシュ設定を選択します。

  3. パブリッシュ設定ダイアログボックスの「フォーマット」タブで、「Flash」チェックボックスだけが選択されていることを確認します。

  4. 「Flash」チェックボックスの横の「ファイル」フィールドで、フォルダーアイコンをクリックして、SWF ファイルがパブリッシュされるフォルダーを選択します。 SWF ファイルの場所を設定することにより、ドキュメントを 1 つのフォルダーで管理しながら、パブリッシュした SWF ファイルを別のフォルダー(コンテナアプリケーションのソースコードが含まれるフォルダーなど)で管理できます。

  5. タイムラインのフレーム 1 のキーフレームを選択して、アクションパネルを開きます。

  6. サンプルの ActionScript コードをスクリプトペインにコピーします。

  7. メインメニューからファイル/パブリッシュを選択して、SWF ファイルを再びパブリッシュします。

  8. ActionScript とコンテナアプリケーション間の通信をテストするためのコンテナアプリケーションを作成して実行します。

外部 API を使用して HTML ページと通信するすべての例については、次のトピックを参照してください。 これらの例には完全なコードが含まれており、その中には、External API を使用してコードを作成するときに使用する、ActionScript とコンテナエラーチェックコードも含まれています。 External API を使用する別の完全な例については、ActionScript 3.0 リファレンスで、ExternalInterface クラスの例を参照してください。