AS3中有两种数组,一种是索引数组,另一种是关联数组。两者根据不同情况,使用会非常方便。
Array(索引数组):
索引值是整数。第一个元素为Array.[0],第二个元素为Array.[1]。可以在索引数组中存储数字、字符串、对象等各种类型,甚至是数组对象(多维数组)。注意,Array类允许创建关联数组,但是Array类中的方法无法适用于关联数组。
示例代码:
var oneArray:Array = new Array("a", "b", "c");
var twoArray:Array = oneArray; // Both array variables refer to the same array.
twoArray[0] = "z";
trace(oneArray); // Output: z,b,c.
Object(字符串关联数组):
索引值是字符串。关联数组是和值对应的无序集合。在AS3中有两种创建关联数组的类:Object和Dictionary。
示例代码:
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
索引值是对象。
示例代码:
var groupMap:Dictionary = new Dictionary();
// objects to use as keys
var spr1:Sprite = new Sprite();
var spr2:Sprite = new Sprite();
var spr3:Sprite = new Sprite();
// objects to use as values
var groupA:Object = new Object();
var groupB:Object = new Object();
// Create new key-value pairs in dictionary.
groupMap[spr1] = groupA;
groupMap[spr2] = groupB;
groupMap[spr3] = groupB;
if (groupMap[spr1] == groupA)
{
trace("spr1 is in groupA");
}
if (groupMap[spr2] == groupB)
{
trace("spr2 is in groupB");
}
if (groupMap[spr3] == groupB)
{
trace("spr3 is in groupB");
}
使用键值遍历关联数组:
for (var key:Object in groupMap)
{
trace(key, groupMap[key]);
}
/* output:
[object Sprite] [object Object]
[object Sprite] [object Object]
[object Sprite] [object Object]
*/