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