嘿所有,标题可能会引起误导,但我不知道写它的正确方法。AS3相当于PHP的关键数组
基本上,我该怎么办的AS3相当于这个PHP代码:
return array('x' => 0, 'y' => 0);
嘿所有,标题可能会引起误导,但我不知道写它的正确方法。AS3相当于PHP的关键数组
基本上,我该怎么办的AS3相当于这个PHP代码:
return array('x' => 0, 'y' => 0);
你可以做这样的事情
var myArray:Array = new Array({x:'0'},{y:'1'},{x:'2'});
或
var myArray:Array = new Array({x:'0',y:'1'},{a:'1',b:'2'});
private var map:Dictionary = new Dictionary();
map["x"] = 0;
map["y"] = 0;
字典与普通对象相比具有一些优点,但有两个主要缺点:1.更多的开销,以及2.更多的代码要写入(不能仅仅执行'{x:0,y:0}',只能使用语法如上所示) – davr 2010-04-05 16:05:37
的标准的做法就是这样。要记住的主要事情是AS3中的'Object'几乎等同于PHP的关联数组。
var obj:Object = {x:0, y:0};
trace(obj['x']); // like in PHP
trace(obj.x); // also valid
// AS3 version of foreach in PHP
for(var key:String in obj) {
trace(key +" = " + obj[key]);
}
您可以使用对象作为关联数组,但为什么要将这些对象放入新数组中? – 2010-04-01 21:06:39
这样做是为了使阵列连续。这样你就可以维护数组的索引。如果你不关心数组的索引,那么使用对象更好。 – Tempname 2010-04-01 21:12:56
关于这种方法的奇怪之处在于,您现在需要执行'myArray [0] ['x']','myArray [1] ['y']'等等,而不仅仅是'myArray ['x ']'或'myArray ['y']'。大多数人不这样做,只是使用普通的对象。 – davr 2010-04-05 16:04:02