我通过 FlashVars
将 Javascript Array()
传递给 Flash,但 Flash 提示。你们能指出我在这里做错了什么吗?
javascript代码
// array with the user defined cities
var usercities = new Array(
{'nome':"London", 'lat':51.5002, 'long':-0.1262 },
{'nome':"NYC", 'lat':51.5002, 'long':-0.1262 }
);
flashvars.newcities = usercities;
Flash代码
// this array is pre-populated so if the users doesn't enter data this is shown
var cities:Array = new Array(
{ nome:"London", lat:51.5002, long:-0.1262 },
{ nome:"NYC", lat:40.7144, long:-74.0060 }
);
// gets FlashVars
var newcities:Object = LoaderInfo(this.root.loaderInfo).parameters.newcities;
if(newcities != null) {
cities = newcities;
};
不起作用。我需要让 Flash 端上的 cities
数组保持原样。在 Javascript 方面,所有代码都可以更改。
感谢您的帮助。
最佳答案
JavaScript 不像其他语言那样具有关联数组。为了拥有命名索引,您必须使用一个对象。分配了具有命名索引的值的数组将被转换为对象。
为此,您可能需要更改 Flash 代码。正如 Meder 所说,序列化数组是最好的选择。我建议在 JavaScript 中进行 JSON 编码并在 Flash 中进行解码。
关于JavaScript 传递的是对象数组而不是数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3240800/