我通过Javascript Array()
将FlashVars
传递给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方面,所有代码都可以更改。
感谢您的帮助。
答案 0 :(得分:1)
JavaScript没有像其他语言一样的关联数组。要获得命名索引,必须使用对象。为指定索引赋值的数组将转换为对象。
为此,您可能需要更改Flash代码。正如meder所说,序列化你的阵列是你最好的选择。我建议在JavaScript中使用JSON编码,在Flash中使用解码。
答案 1 :(得分:0)
你可以手动制作它们。像这样:
var usercities = [];
usercities[0] = [];
usercities[0]["nome"] = "London";
usercities[0]["lat"] = 51.5002
usercities[0]["long"] = -0.1262
usercities[1] = [];
usercities[1]["nome"] = "NYC";
usercities[1]["lat"] = 51.5002
usercities[1]["long"] = -0.1262
虽然我认为它完全相同,但闪光可能会有不同的看法。
答案 2 :(得分:0)
结束传递值:
<强>的javascript 强>
var cities = new Array(
Array("London", 51.5002, -0.1262),
Array("NYC", 40.7144, -74.0060),
);
那个闪光灯是一个纯粹的字符串。
"London",51.5002,-0.1262,"NYC",40.7144,-74.0060
然后我爆炸了字符串并转换为Array。它有点脏,但最终工作。只要数组每行总共有3个项目,并且没有项目有逗号。
希望这可以帮助某人。