将数组从Flash(AS3)发送到JavaScript

时间:2009-06-29 14:20:38

标签: javascript flash actionscript-3 externalinterface

是否可以使用ExternalInterface调用将数组从Flash(AS3)发送到JavaScript?

我目前正在从Flash中的'for each'循环中多次调用一个函数,但它的速度太快,以至于JavaScript无法跟上。

我的想法是创建一个属性数组,将其传递给JavaScript函数,然后在JavaScript中循环它。

谢谢, 约什

3 个答案:

答案 0 :(得分:8)

是的,这是可能的。

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

  

... arguments - 要传递的参数   到容器中的功能。您   可以指定零个或多个参数,   用逗号分隔它们。他们能   是任何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);
}

答案 1 :(得分:7)

除了使用JSON的建议之外,对于小型数组来说这应该更快,并且不需要使用eval或外部库来解析。在flash中加入一个像这样的字符串中的数组:

ITEM1 | ITEM2 |项目3 | ITEM4

将字符串传递给JS并使用split(“|”)

再次拆分

答案 2 :(得分:6)

您总是可以创建一个JSON对象并将其传递给JavaScript。

相关问题