AS3的索引數組和關聯數組

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


Dictionary(對象關聯數組):
        索引值是對象。

        示例代碼:

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






發佈了31 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章