ExternalInterface.call() は、JavaScript関数を呼び出して、戻り値を処理します。かつては、1つのメソッドを使ってJavaScript関数を呼び出し、戻り値を受け取るにはまた別のメソッドを使わなければなりませんでした。それが今では1つの関数を呼び出すだけで、即座に戻り値を受け取ることができるのです。ずいぶん簡単になったものですね。
この ExternalInterface.call() メソッドでは、以下の基本フォーマットが使用されます。
ExternalInterface.call(methodName:String, [parameter1:Object])
これらのパラメータは、それぞれ次の内容を意味しています。
Flashで以下のコードを入力します。
import flash.external.*; // The name of a JavaScript function to call var callJasFunction:String = "callJavascript"; //parameter var msg:String = "Hello. ^^"; // The return value after calling JavaScript var returnValue:String = ExternalInterface.call(callJasFunction, msg).toString(); return_txt.text = returnValue;
以下のJavaScriptコードを入力します。
<script language="JavaScript">
function callJavascript(str) {
alert(str)
return "ExternalInterface is a new Flash Player 8 API."
}
</script>
この callJavascript() が呼び出されると、JavaScript関数が値を受け取ったことを示すメッセージウィンドウが表示されます。ここで「OK」をクリックすると戻り値がFlash Playerに送られ、Flash Playerはこの戻り値を受け取ってそれを return_txt.text の部分に表示します(図5参照)。
図5.JavaScriptから戻された値
注意:いつもと同じように、Flash Player 8でローカルテストを行う際には allowScriptAccess="sameDomain" を allowScriptAccess="always" に変更してください。また、ローカルのFlashコンテンツをインターネットに接続させる方法については、Flash Playerテクニカルノート*を読んでください。