2007年1月21日星期日

5.2.遍历数组成员


5.2. 遍历数组成员

问题
我要访问数组的每个元素
解决办法
利用 for 循环来遍历数组,使用下标返回元素。
讨论

for循环的初始变量从0开始,结束为array.length-1,因为是从下标0开始的:
var letters:Array = ["a", "b", "c"];
for (var i:int = 0; i < letters.length; i++) {
trace("Element " + i + ": " + letters[i]);
}
也可以降序遍历数组,循环变量从array.length-1开始到0:
var letters:Array = ["a", "b", "c"];
for (var i:int = letters.length - 1; i >= 0; i--){
trace("Element " + i + ": " + letters[i]);
}
有很多情况需要用循环遍历所有元素,比如,获得了包含sprite的数组, 然后把每个sprite的x坐标+1:
for (var i:int = 0; i < sprites.length; i++){
sprites[i].x++;
}
可以把数组长度存在变量中,免得每次循环都要重新计算:
var length:int = sprites.length;
for (var i:int = 0; i < length; i++){
sprites[i].x++;
}

这样做可以提高Flash性能,因为不用每次循环都去计算长度了,但是有个前提,就是没有进行插入删除操作来改变长度值,否则就要每次计算长度才行。


没有评论: