外部 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 クラスは、ActionScript と Flash Player から、HTML ページ内の JavaScript や Flash Player のインスタンスを含むデスクトップアプリケーションへの通信を可能にするサブシステムです。 ExternalInterface クラスは次の条件でのみ使用できます。
その他の環境(スタンドアローン Player で実行する場合など)では、ExternalInterface.available プロパティは false を返します。 ActionScript から、HTML ページの JavaScript 関数を呼び出すことができます。 External API の機能は、次の点において fscommand() よりも強力です。
重要: HTML ページの Flash Player インスタンスに指定された名前(object タグの id 属性)がハイフン(-)または JavaScript の演算子として定義されているその他の文字(+、*、/、¥、. など)を含んでいる場合、コンテナ Web ページが Internet Explorer で表示されると、ActionScript からの ExternalInterface 呼び出しが機能しません。また、Flash Player インスタンスを定義する HTML タグ(object タグと embed タグ)が HTML form タグ内にネストされている場合、ActionScript からの ExternalInterface 呼び出しが機能しません。
|
|