我有flash应用程序,它创建数组并调用javascript函数。
var jsParams = ["3011","3012","3013","3014","3015"];
ExternalInterface.call("doCall", jsParams);
这是我的javascript函数:
function doCall(params) {
console.log(params);
console.log(params[0]);
}
萤火虫的输出是:
["3011","3012","3013","3014","3015"]
[
但对于第二行,我期待3011而不是[。然后我试图用来自firebug的相同参数调用相同的函数,并且函数输出:
doCall(["3011","3012","3013","3014","3015"]);
["3011","3012","3013","3014","3015"]
3011
我的问题是如何将params从actionscript传递给javascript作为数组而不是字符串值。
感谢。
答案 0 :(得分:1)
看起来params
变量是作为字符串传入的,而不是数组。
方括号表示法在应用于字符串时表示所提供索引处的字符,在本例中为'['(位置0)。
您应该查看JSON解码以找到将字符串转换回数组的安全方法,我不建议使用eval
,并且JSON.decode
不受广泛支持。
答案 1 :(得分:0)
您是否尝试将数组封装在另一个数组中?
ExternalInterface.call(“doCall”,[jsParams]);
我认为初始数组是可以传递多个参数集