第一种方法是使用 Object 构造函数,
它的优点是可以使用对象文本初始化数组。Object 类的实例(也称作“通用对象”)在功
能上等同于关联数组。通用对象的每个属性名称都用作键,提供对存储的值的访问。
以下示例创建一个名为 monitorInfo 的关联数组,并使用对象文本初始化具有两个键和值
对的数组:
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// 输出:Flat Panel 1600 x 1200
使用对象文本或 Object 类构造函数创建数组后,可以使用括号运算符 ([]) 或点运算符 (.)
在数组中添加值。以下示例将两个新值添加到 monitorArray 中:
monitorInfo["aspect ratio"] = "16:10"; // 格式错误,请勿使用空格
monitorInfo.colors = "16.7 million";
trace(monitorInfo["aspect ratio"], monitorInfo.colors);
// 输出: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"]);
// 输出: Flat Panel 1600 x 1200
使用 Array 构造函数创建关联数组没有什么优势。即使使用 Array 构造函数或 Array 数据
类型,也不能将 Array 类的 Array.length 属性或任何方法用于关联数组。最好将 Array 构
造函数用于创建索引数组。
第三种方法可以使用 Dictionary 类创建使用对象而非字符串作为键的关联数组。
这样的数组有时候也称
作字典、哈希或映射。例如,考虑这样一个应用程序,它可根据 Sprite 对象与特定容器的关
联确定 Sprite 对象的位置。可以使用 Dictionary 对象,将每个 Sprite 对象映射到一个容器。
以下代码创建三个用作 Dictionary 对象的键的 Sprite 对象实例。它为每个键分配了值
GroupA 或 GroupB。值可以是任意数据类型,但在此示例中,GroupA 和 GroupB 均为 Object
类的实例。然后,可以使用属性访问运算符 ([]) 访问与每个键关联的值,如以下代码所示:
import flash.display.Sprite;
import flash.utils.Dictionary;
var groupMap:Dictionary = new Dictionary();
// 要用作键的对象
var spr1:Sprite = new Sprite();
var spr2:Sprite = new Sprite();
var spr3:Sprite = new Sprite();
// 要用作值的对象
var groupA:Object = new Object();
var groupB:Object = new Object();
// 在字典中创建新的键- 值对。
groupMap[spr1] = groupA;
groupMap[spr2] = groupB;
groupMap[spr3] = groupB;
if (groupMap[spr1] == groupA)
{
trace("spr1 is in groupA");
}