8

ExternalInterface呼び出しを使用してFlash(AS3)からJavaScriptに配列を送信することは可能ですか?

現在、Flash内の「foreach」ループから関数を複数回呼び出していますが、JavaScriptが追いつかないほど高速です。

私の考えは、属性の配列を作成し、それをJavaScript関数に渡してから、JavaScriptでループすることです。

ありがとう、ジョシュ

4

3 に答える 3

8

はい、可能です。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html#call()

... 引数 — コンテナー内の関数に渡す引数。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);
}
于 2009-06-30T01:42:32.440 に答える
7

JSON を使用するという提案に加えて、これは小さな配列の場合は高速になるはずであり、解析に eval や外部ライブラリを使用する必要はありません。フラッシュで次のように配列を文字列に結合します。

アイテム1|アイテム2|アイテム3|アイテム4

文字列を JS に渡し、split("|") を使用して再度分割します。

于 2009-06-29T14:42:53.273 に答える
6

いつでも JSON オブジェクトを作成し、それを JavaScript に渡すことができます。

于 2009-06-29T14:23:03.670 に答える