ExternalInterface呼び出しを使用してFlash(AS3)からJavaScriptに配列を送信することは可能ですか?
現在、Flash内の「foreach」ループから関数を複数回呼び出していますが、JavaScriptが追いつかないほど高速です。
私の考えは、属性の配列を作成し、それをJavaScript関数に渡してから、JavaScriptでループすることです。
ありがとう、ジョシュ
ExternalInterface呼び出しを使用してFlash(AS3)からJavaScriptに配列を送信することは可能ですか?
現在、Flash内の「foreach」ループから関数を複数回呼び出していますが、JavaScriptが追いつかないほど高速です。
私の考えは、属性の配列を作成し、それをJavaScript関数に渡してから、JavaScriptでループすることです。
ありがとう、ジョシュ
はい、可能です。
... 引数 — コンテナー内の関数に渡す引数。0 個以上のパラメーターをコンマで区切って指定できます。任意の ActionScript データ型にすることができます。呼び出しが JavaScript 関数に対するものである場合、ActionScript 型は自動的に JavaScript 型に変換されます。呼び出しが他の ActiveX コンテナーに対するものである場合、パラメーターは要求メッセージでエンコードされます。
簡単なテスト:
AS コード:
if(ExternalInterface.available) {
ExternalInterface.call("jsTest", [0,1,"two",{a:1,b:2}]);
}
JS コード:
function jsTest(arg) {
alert(arg);
}
JSON を使用するという提案に加えて、これは小さな配列の場合は高速になるはずであり、解析に eval や外部ライブラリを使用する必要はありません。フラッシュで次のように配列を文字列に結合します。
アイテム1|アイテム2|アイテム3|アイテム4
文字列を JS に渡し、split("|") を使用して再度分割します。
いつでも JSON オブジェクトを作成し、それを JavaScript に渡すことができます。