Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > External API の使用 > ExternalInterface クラスの使用 > ActionScript からの外部コードの呼び出し | |||
ExternalInterface.call() メソッドでは、コンテナアプリケーション内のコードが実行されます。パラメータは最低 1 つ必要で、コンテナアプリケーション内で呼び出される関数の名前を含んだストリングを指定します。ExternalInterface.call() メソッドに渡された追加パラメータは、関数呼び出しのパラメータとしてコンテナに渡されます。
// 外部関数 "addNumbers" を呼び出し、
// 2 つのパラメータを渡して、その関数の結果を
// 変数 "result" に割り当てる
var param1:uint = 3;
var param2:uint = 7;
var result:uint = ExternalInterface.call("addNumbers", param1, param2);
コンテナが HTML ページの場合は、指定された名前の JavaScript 関数がこのメソッドによって呼び出されます。この名前は、格納された HTML ページの script エレメントで定義されている必要があります。JavaScript 関数の戻り値は ActionScript に返されます。
<script language="JavaScript">
// 2 つの数値を加算し、その結果を ActionScript に返す
function addNumbers(num1, num2)
{
return (num1 + num2);
}
</script>
コンテナがその他の ActiveX コンテナの場合は、このメソッドによって Flash Player ActiveX コントロールから FlashCall イベントが送出されます。指定された関数名とパラメータは、Flash Player によって直列化されて XML ストリングになります。コンテナは、イベントオブジェクトの request プロパティでその情報にアクセスし、それを使用して自身のコードの実行方法を判定できます。値を ActionScript に返すには、コンテナコードで ActiveX オブジェクトの SetReturnValue() メソッドを呼び出し、その結果 (シリアル化された XML ストリング) をメソッドのパラメータとして渡します。この通信で使用される XML フォーマットの詳細については、External API の XML フォーマットを参照してください。
コンテナが Web ブラウザでも、その他の ActiveX コンテナでも、呼び出しが失敗した場合やコンテナ側のメソッドが戻り値を返さなかった場合は、null が返されます。呼び出し側コードによるアクセスが、コンテナ環境の属するセキュリティ Sandbox によって許可されていない場合、ExternalInterface.call() メソッドは SecurityError 例外をスローします。この問題を回避するには、コンテナ環境の allowScriptAccess に適切な値を設定します。たとえば、HTML ページの allowScriptAccess の値を変更するには、object および embed タグの該当する属性を編集します。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000342.html