`

flex object 联合数组

    博客分类:
  • flex
阅读更多

问题
我要创建用名称元素作为索引的数组
解决办法
创建联合数组
讨论
用联合数组其每个元素都有特定的含义,这一点原来的数组类型是做不到的。
var aMembers:Array = new Array("Franklin", "Gina", "Sindhu");
联合数组在其他的语言叫做哈希表,在ActionScript 里它就是Object 类的一个实例,联合
数组使用名称元素来代替数字下标,该名称也被称为关键字或属性,说关键字更好理解些,它
关联了元素值,两者一一对应。
创建联合数组不是用Array 类而是Object类创建的,它就是Object 类的一个实例,理论上
Object 类是任何类的基类。所有的对象都能作为联合数组,但是除非有特殊需要,最好还是用
Object 类创建。
用{ } ,而且用逗号分开每个键值对,键值对之间用:,像下面:
var memebers:Object = {scribe: "Franklin",
chairperson: "Gina",
treasurer: "Sindhu"};
也可以像下面那样创建联合数组:
var members:Object = new Object( );
members.scribe = "Franklin";
members.chairperson = "Gina";
members.treasurer = "Sindhu";
有两种方法访问联合数组内容,一种是通过访问属性名称(关键字):
trace(members.scribe); // 显示: Franklin
另一种就像数组那样,把关键字作为下标来访问,用[ ] 符号:
trace(members["scribe"]); // 显示: Franklin
这种方式更加灵活,可以在数组中进行遍历,对于动态生成的关键值和内容这种访问方式
是最好的,例如:
var members:Object = new Object();
members.councilperson1 = "Beatrice";
members.councilperson2 = "Danny";
members.councilperson3 = "Vladamir";
for (var i:int = 1; i <= 3; i++) {
trace(members["councilperson" + i];
}
数组访问方式在循环语句里经常用到:
var members:Object = new Object( );
members["councilperson"] = "Ruthie";
trace(members.councilperson); // 显示Ruthie
members.councilperson = "Rebecca";
trace(members["councilperson"]); // 显示: Rebecca

读取联合数组
问题
我要怎样遍历联合数组
解决办法
使用for . . . in 语句
讨论
基于整形下标的数组可以通过for 语句进行循环遍历,但是,用关键字作索引的联合数组
就不能这样遍历了,还好,联合数组可以通过for . . . in 语句进行遍历访问。该语句会访问指
定对象所有可用的属性,语法如下:
for ( keyin object) {
// Actions
}
for . . . in 语句不需要循环变量更新语句,决定循环次数的是对象的属性个数。注意这key 就
是存储每个属性名称的:
var members:Object = new Object( );
members.scribe = "Franklin";
members.chairperson = "Gina";
members.treasurer = "Sindhu";
// 使用for . . . in 语句遍历所有元素
for (var sRole:String in members) {
// 显示:
// treasurer: Sindhu
// chairperson: Gina
// scribe: Franklin
trace(sRole + ": " + members[sRole]);
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics