AS3.0クラスExternalInterface
AS3.0クラスExternalInterface
ExternalInterfaceクラスは外部 APIで、ActionScriptとFlash Playerコンテナ間の直接通信が可能なアプリケーションプログラミングインターフェイス。
コンテナの通信例として、JavaScriptを含むHTMLページや、Flash Playerが埋め込まれたデスクトップアプリケーションなど。
簡単に言うと、ActionScript記述でHTML上のJavaScript、FlashPlayerコンテナの連携が可能であるということですね。
HTMLソース上のJavaScriptの関数をコールすることも可能で、ブール (Boolean)、数値 (Number)、ストリング (String) などのさまざまなデータ型を返すこともできます。
ちなみにJavaScriptとActionScript通信はすべてExternalInterface使用がAdobe社では推奨されています。
ExternalInterfaceクラスはfscommand()メソッドに変わる関数と位置づけされます。
【ExternalInterfaceの対応ブラウザとOS】
Internet Explorer 5.0 以降 Windows
Netscape 8.0 以降 Windows Macintosh
Mozilla 1.7.5 以降 Windows Macintosh
Firefox 1.0 以降 Windows Macintosh
Safari 1.3 以降 Macintosh
ExternalInterface動作条件はUAのWebブラウザが、ActiveXもしくはNPRuntime APIのどちらかのサポートが必要。
【パブリックプロパティ】
■available : Boolean[静的] [読み取り専用]
Playerが外部インターフェイスを備えたコンテナに含まれているかどうかを返す。
■marshallExceptions : Boolean = false[静的]
外部インターフェイスで、ActionScript例外を現在のブラウザに、JavaScript例外をFlash Playerに渡す必要があるかどうかを返す。
■objectID : String[静的] [読み取り専用]
Internet Explorerである場合はobjectタグのid 属性値を、Netscapeである場合はembedタグのname属性値を返す。
【パブリックメソッド】
■addCallback(functionName:String, closure:Function):void[静的]
ActionScriptメソッドをコンテナから呼び出し可能し、HTML上のJavaScriptからもActionScriptをコール可能にします。
■call(functionName:String, ... arguments):*[静的]
Flash Playerコンテナで公開されている関数を呼び出し、引数を渡すことが必要に応じて可能になります。
【例】
ExternalInterface.availableは外部インターフェイスを備えたコンテナ内に Player が含まれているかどうかを判定します。
import flash.external.*;
var AvailableValue:Boolean = ExternalInterface.available;
trace(AvailableValue);
●ActionScript記述でHTMLページに対して実行可能なこと
・任意であるJavaScript関数の呼び出し
・引数の数を名前と共に引渡し
・ブール (Boolean)、数値 (Number)、ストリング (String) などのデータ型を渡すことが可能
・JavaScript関数から戻り値の受け取りが可能
●HTMLページ上のJavaScriptより実行可能なこと
・ActionScript関数の呼び出し
・標準である関数の呼び出し表記法を用いて引数を渡すことが可能
・JavaScript関数に値を戻すことが可能
●注意するべきこと
HTMLページ上にSWFファイルを配置する際に、
また、現在Flash Playerは、HTMLォームに埋め込まれたSWFファイルの動作保障をしていないようです。