Adobe Flex 3 ヘルプ

外部 API の要件と利点

外部 API は ActionScript の一部で、Flash Player のコンテナとして機能する「外部アプリケーション」(一般的には Web ブラウザまたはスタンドアローンのプロジェクタアプリケーション)で実行されるコードと、ActionScript との間の通信用メカニズムを提供します。ActionScript 3.0 では、外部 API の機能が ExternalInterface クラスによって提供されます。Flash Player 8 よりも前のバージョンの Flash Player では、fscommand() アクションを使用してコンテナアプリケーション内での通信が実行されていました。ExternalInterface クラスは fscommand() に代わるもので、JavaScript と ActionScript との間のすべての通信用に推奨されます。

注意:以前の fscommand() 関数を使用する必要がある場合(例えば、以前のバージョンのアプリケーションとの互換性を維持する場合、サードパーティの SWF コンテナアプリケーションやスタンドアローンの Flash Player で操作する場合など)は、パッケージレベルの関数として flash.system パッケージに用意されています。

ExternalInterface クラスは、ActionScript と Flash Player から、HTML ページ内の JavaScript や Flash Player のインスタンスを含むデスクトップアプリケーションへの通信を可能にするサブシステムです。

ExternalInterface クラスは次の条件でのみ使用できます。

  • Windows 版 Internet Explorer の全サポートバージョン(5.0 以降)。
  • Flash Player ActiveX コントロールのインスタンスを使用するデスクトップアプリケーションなどのコンテナアプリケーション。
  • NPRuntime インターフェイスをサポートするすべてのブラウザ。現時点では次のブラウザが該当します。
    • Firefox 1.0 以降
    • Mozilla 1.7.5 以降
    • Netscape 8.0 以降
    • Safari 1.3 以降

その他の環境(スタンドアローンの Player で実行する場合など)では、ExternalInterface.available プロパティは false を返します。

ActionScript から、HTML ページの JavaScript 関数を呼び出すことができます。外部 API の機能は、次の点において fscommand() よりも強力です。

  • fscommand() 関数から使用できる機能だけでなく、すべての JavaScript 関数を使用できます。
  • 1 つのコマンドと 1 つのストリングパラメータという制限はなく、任意の個数のパラメータを任意の名前で渡すことができます。これにより、外部 API は fscommand() よりも非常に柔軟になっています。
  • String パラメータだけでなく、様々なデータ型 (Boolean、Number、String など) を渡すことができます。
  • 呼び出し結果の値を受け取ることができます。結果は呼び出しに対する戻り値として、直ちに ActionScript に戻されます。

重要: また、Flash Player インスタンスを定義する HTML タグ(object および embed タグ)が HTML form タグ内でネストされていると、ActionScript からの ExternalInterface 呼び出しが機能しません。

重要: HTML ページの Flash Player インスタンス(object タグの id 属性)に付けられた名前に、ハイフン(-)または JavaScript で演算子として定義されたその他の文字(+*/、\、. など)が含まれていると、コンテナ Web ページを Internet Explorer で表示した場合に、ActionScript からの ExternalInterface 呼び出しが機能しません。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート