外部 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 呼び出しが機能しません。
|
|
|