当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《将数组从Flash(AS3)发送到JavaScript》经验,为你挑选了3个好方法。

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

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

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

谢谢,乔希



1> Juan Pablo C..:

是的,这是可能的.

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);
}



2> Andy E..:

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

物品1 | ITEM2 |项目3 | ITEM4

将字符串传递给JS并使用split("|")再次拆分它


请确保您的数据永远不会包含分隔符字符!

3> kemiller2002..:

您始终可以创建一个JSON对象并将其传递给JavaScript.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有