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]
*/