as3中的二维对象数组

时间:2013-03-29 16:16:04

标签: actionscript-3

是否可以像这样在as3中创建数组:

countdowns[bodyID][powerupName] = { time: powerup.getTime(), onRemove: onRemove }; 

我已经尝试了几个小时但没有运气.. 感谢

3 个答案:

答案 0 :(得分:2)

当然,但你必须单独声明每个对象,你必须调用索引号而不是变量名

假设我有一个颜色数组,其颜色类型的子数组填充了描述RGB

的对象
var colors:Array = [];
var red:Array = [];
var darkRed:Object = { r : 256, g : 100, b : 100 }
red.push( darkRed ); //darkRed is now part of red
colors.push( red ); //red is now part of colors

要访问darkRed,您可以这样做:

colors[0][0]; //that is darkRed

答案 1 :(得分:0)

我相信这是你想要完成的事情:

var countdowns:Array = new Array;
countdowns[bodyID] = new Array;
countdowns[bodyID][powerupName] = { time: powerup.getTime(), onRemove: onRemove };

倒计时数组的第二个维度是通过将数组插入第一维的每个元素来实现的。

答案 2 :(得分:0)

虽然这当然可以做到,但你可能会过度复杂化。也许单个Array ob定制对象将更适合。

var ob:Object=new Object();
ob.bodyId=bodyId;
ob.powerup=powerup; // direct link to powerup might serve you better!
ob.onRemove=onRemove;
countdowns.push(ob);