有兩種方式可以在 ActionScript 3.0 中建立關聯陣列,第一種方式是使用 Object 實體。使用 Object 實體,您即可以物件常值初始化陣列。Object 類別的實體 (也稱為一般物件) 在功能上和關聯陣列完全相同。一般物件的每個屬性名稱都能當做索引鍵,可用來存取儲存的值。
下列範例會建立名為
monitorInfo
的關聯陣列,並使用物件常值搭配兩個索引鍵和值配對來初始化這個陣列:
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
如果您不需要在宣告階段初始化陣列,則可以使用 Object 建構函式來建立陣列,如下所示:
var monitorInfo:Object = new Object();
使用物件常值或 Object 類別建構函式建立陣列之後,您可以使用陣列存取 (
[]
) 運算子或點運算子 (
.
)。 下列範例會將兩個新的值加入
monitorArray
:
monitorInfo["aspect ratio"] = "16:10"; // bad form, do not use spaces
monitorInfo.colors = "16.7 million";
trace(monitorInfo["aspect ratio"], monitorInfo.colors);
// output: 16:10 16.7 million
請注意,名為
aspect ratio
的索引鍵包含空格字元。這對於陣列存取 (
[]
) 運算子是可行的,但要是使用點運算子,就會產生錯誤。因此,建議您不要在索引鍵名稱中使用空格。
第二種建立關聯陣列的方式就是使用 Array 建構函式 (或任何動態類別的建構函式),然後再使用陣列存取 (
[]
) 運算子或點運算子 (
.
),將索引鍵與值配對加入陣列中。如果將關聯陣列宣告為 Array 類型,就無法使用物件常值來初始化陣列。下列範例會使用 Array 建構函式來建立名為
monitorInfo
的關聯陣列,然後將
type
索引鍵和
resolution
索引鍵,連同其各自的值一併加入該陣列中:
var monitorInfo:Array = new Array();
monitorInfo["type"] = "Flat Panel";
monitorInfo["resolution"] = "1600 x 1200";
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
使用 Array 建構函式來建立關聯陣列,並不具備任何優勢。即使您使用 Array 建構函式或 Array 資料類型,也無法搭配關聯陣列使用
Array.length
屬性或任何 Array 類別的方法。由此可見,Array 建構函式最適合用來建立索引陣列。