是否可以使用 ExternalInterface 调用将数组从 Flash (AS3) 发送到 JavaScript?
我目前正在从 Flash 内的“for each”循环中多次调用一个函数,但它的速度太快,JavaScript 无法跟上。
我的想法是创建一个属性数组,将其传递给 JavaScript 函数,然后在 JavaScript 中循环遍历它。
谢谢,乔什
是否可以使用 ExternalInterface 调用将数组从 Flash (AS3) 发送到 JavaScript?
我目前正在从 Flash 内的“for each”循环中多次调用一个函数,但它的速度太快,JavaScript 无法跟上。
我的想法是创建一个属性数组,将其传递给 JavaScript 函数,然后在 JavaScript 中循环遍历它。
谢谢,乔什
是的,这是可能的。
... arguments — 要传递给容器中函数的参数。您可以指定零个或多个参数,并用逗号分隔它们。它们可以是任何 ActionScript 数据类型。当调用 JavaScript 函数时,ActionScript 类型会自动转换为 JavaScript 类型;当调用某个其他 ActiveX 容器时,参数在请求消息中进行编码。
快速测试:
作为代码:
if(ExternalInterface.available) {
ExternalInterface.call("jsTest", [0,1,"two",{a:1,b:2}]);
}
JS代码:
function jsTest(arg) {
alert(arg);
}
除了使用 JSON 的建议之外,这对于小型数组应该更快,并且不需要使用 eval 或外部库来解析。在 flash 中加入这样的字符串中的数组:
项目1|项目2|项目3|项目4
将字符串传递给 JS 并使用 split("|") 再次拆分它
您总是可以创建一个 JSON 对象并将其传递给 JavaScript。