アクセシビリティ

Flash記事

 

外部APIを使用したFlashとJavaScriptの接続


目次

ExternalInterface.call()

ExternalInterface.call() は、JavaScript関数を呼び出して、戻り値を処理します。かつては、1つのメソッドを使ってJavaScript関数を呼び出し、戻り値を受け取るにはまた別のメソッドを使わなければなりませんでした。それが今では1つの関数を呼び出すだけで、即座に戻り値を受け取ることができるのです。ずいぶん簡単になったものですね。

この ExternalInterface.call() メソッドでは、以下の基本フォーマットが使用されます。

ExternalInterface.call(methodName:String, [parameter1:Object])

これらのパラメータは、それぞれ次の内容を意味しています。

  • MethodName:呼び出すJavaScript関数の名前
  • parameter1:関数に渡される任意のパラメータ。0個のパラメータを指定することも、複数のパラメータをカンマで区切って指定することも可能

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参照)。

JavaScriptから戻された値

図5.JavaScriptから戻された値

注意:いつもと同じように、Flash Player 8でローカルテストを行う際には allowScriptAccess="sameDomain"allowScriptAccess="always" に変更してください。また、ローカルのFlashコンテンツをインターネットに接続させる方法については、Flash Playerテクニカルノート*を読んでください。