外部 API の要件と利点
Flash Player 9 以降、Adobe AIR 1.0 以降
External API は ActionScript の一部で、Flash Player のコンテナとして機能する「外部アプリケーション」(一般的には Web ブラウザーまたはスタンドアローンのプロジェクターアプリケーション)で実行されるコードと ActionScript 間の通信用メカニズムを提供します。ActionScript 3.0 では、External API の機能が ExternalInterface クラスによって提供されます。 Flash Player 8 よりも前のバージョンの Flash Player では、fscommand() アクションを使用してコンテナアプリケーション内での通信が実行されていました。ExternalInterface クラスは、fscommand() に代わるものです。
注意: 以前の fscommand() 関数を使用する必要がある場合(例えば、以前のバージョンのアプリケーションとの互換性を維持する場合や、サードパーティーの SWF コンテナアプリケーションやスタンドアローン Flash Player で操作する場合など)は、パッケージレベルの関数として flash.system パッケージに用意されています。
ExternalInterface クラスは、HTML ページ上で ActionScript および Flash Player から JavaScript への通信を容易にするサブシステムです。
ExternalInterface クラスは次の条件でのみ使用できます。
Windows 版 Internet Explorer の全サポートバージョン(5.0 以降)
NPRuntime インターフェイスをサポートする任意のブラウザー。これには現在、Firefox 1.0 以降、Mozilla 1.7.5 以降、Netscape 8.0 以降および Safari 1.3 以降が含まれます。
HTMLLoader コントロールによって表示されている HTML ページに SWF が埋め込まれている場合の AIR アプリケーション
その他の環境(スタンドアローン Player で実行する場合など)では、ExternalInterface.available プロパティは false を返します。
ActionScript から、HTML ページの JavaScript 関数を呼び出すことができます。 External API の機能は、次の点において fscommand() よりも強力です。
fscommand() 関数から使用できる機能だけでなく、すべての JavaScript 関数を使用できます。
1 つのコマンドと 1 つのストリングパラメーターという制限はなく、任意の個数のパラメーターを任意の名前で渡すことができます。 これにより、External API は fscommand() よりも非常に柔軟になっています。
String パラメーターだけでなく、様々なデータ型(Boolean、Number、String など)を渡すことができます。
呼び出し結果の値を受け取ることができます。結果は呼び出しに対する戻り値として、直ちに ActionScript に戻されます。
重要: HTML ページの Flash Player インスタンスに指定された名前(object タグの id 属性)がハイフン(-)または JavaScript の演算子として定義されているその他の文字(+、*、/、¥、. など)を含んでいる場合、コンテナ Web ページが Internet Explorer で表示されると、ActionScript からの ExternalInterface 呼び出しが機能しません。また、Flash Player インスタンスを定義する HTML タグ(object タグと embed タグ)が HTML form タグ内にネストされている場合、ActionScript からの ExternalInterface 呼び出しが機能しません。
|
|
|