- 浏览: 23486 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
文章分类
最新评论
-
surpass_li:
真好使一下就搞定了,谢谢分享
Flex/Flash Builder 4.5 下载与破解 -
keete:
要是有源码就赞了。
flash 生成图片上传
原文:http://www.kirupa.com/developer/actionscript/array.htm
翻译:flowind
精品闪客论坛(www.flashbbs.org)
Flash中的数组,就是维护在一个变量下的一组数据。假设你在一张纸上列出一个购买清单,然后在清单上从0开始编号,输入每一个你要购买的东西。
这张清单就是你的数组变量。你需要购买的东西叫做变量值。在flash中,上面这个情况可以用下面这句代码来表示:
grocery = ["bananas", "milk", "rice", "lemons"];
你可以从一个数组进入属于它的每一个元素,数组里的每一个元素都被赋予了一个从0开始的编号。在上面这个例子中,bananas的值是0,milk是1,rice的值是2。
声明一个数组
声明一个数组有几种方法。最简单的方法,就是采用下面这种格式:
variable = ["item0", "item1", "item2"];
如果,你曾经使用过其他的编程语言,你将注意到flash对很多东西都补挑,比如数据何时被加入数组,被加入的数组是什么类型,以及数组的初始长度等。
显示一个数组
复制并粘贴下面这行代码到一个帧里面,然后按Ctrl+Enter键:
grocery = ["bananas", "oranges", "apples", "kiwis"];
trace(grocery);
你会发现你的数组里的数据被显示出来了。如果,数组里的数据很多,你可以只显示数组里的单一的某个元素。前面已经提到,数组里的元素都会从0开始被按1递增的编上一个号。
比如,我们要显示数组的第一个元素,只要把上面的代码中的
trace(grocery); 修改成trace(grocery[0]);
“bananas”就会被显示出来。
如果要显示第二个元素,敲入:
trace(grocery[1]);
你可以通过增加这个索引值,来访问数组中的下一个元素,但是这个索引值不要超过数组中的元素数量。比如,你的数组里有4个元素,如果你用grocery [5]和grocery[4]都会得到一个"undefined"的结果。记住,数组的索引是从0开始的,4的下标实际访问的是一个数组的第5个元素。
在数组尾部添加一个元素
很多情况下,你可能会发现你数组里的元素不够用了。你的“清单”需要更多的内容,有几种方式可以给你的数组添加元素:
其一,你可以直接通过编号给数组赋值。比如,你要给一个拥有4个元素的数组,增加一个元素“potatoes”,你可以这样写:
grocery[4] = "potatoes";
trace(grocery);
这样,potatoes就被加入到这个数组中下标4的位置。当一个元素被加入到数组中的时候,会一直保留在这个数组中,除非你告诉flash,你还要删除他。我们稍后会再提到如何删除数组元素。
更好的方法当然是利用数组的length属性,取得数组的长度。一旦取得数组的长度,你不用手动指定编号,就可以直接给数组添加一个元素到数组尾部了。代码如下:
i = grocery.length;
grocery[i]="butter";
trace(grocery);
在上面的代码中,变量i取得了grocery数组的长度,第二行中,这个长度值被设置为数组新元素的编号。
注意,length属性,只是返回数组里的元素个数,而且,并不是从0开始,而是从1开始。因此,长度值往往等于数组的最后一个元素编号加1。
替换数组元素
替换你数组里的元素非常的简单。如果你对你清单里的第二个元素不太满意,你准备替换成其他物品,可以用如下代码:
grocery[1]="tangerines"; //橘子
trace(grocery);
第二个元素,就是编号为1的元素,就被值tangerines替换掉了。
上面这些是对数组的基本操作,为了让你更好的理解,我们把上面的都合起来。把下面的代码复制到一个帧的代码区中,然后按Ctrl+Enter。
grocery = ["bananas", "oranges", "apples", "kiwis"];
trace(grocery);
grocery[4] = "potatoes";
trace(grocery);
i = grocery.length;
grocery[i]="butter";
trace(grocery);
grocery[1]="tangerines";
trace(grocery);
下面我们介绍数组的一些更高级的操作:
把两个数组合并成一个数组
Flash允许你把两个数组合并成一个数组。比如下面两个数组:
colors = ["blue", "yellow", "green"];
shape = ["square", "triangle", "circle"];
我们可以把这两个数组通过concat()函数合成一个。如果我们要把colors和shape合成一个新的数组drawing,可以用如下代码:
drawing = colors.concat(shape);
这时,drawing数组的内容就变成了:
square,triangle,circle,blue,yellow,green
可以看到,colors数组里的元素排在前面,shape数组里的内容紧紧的跟在后面。
利用slice()创建一个数组
之前我们利用concat()函数,把两个数组合成了一个数组,slice的功能与之相反。slice()通过从其他数组中提取出一段数据来创建数组。
比如,看下面这个数组:
countries = ["germany", "italy", "norway", "finland", "united states", "india"]
我们可以用如下代码来提取元素:
country2 = countries.slice(2,4);
这行代码将提取数组中的从开始索引处得元素到的到索引4的元素,但是不包括索引4的元素。代码执行完后,country2数组,将会包含两个元素norway和finland,分别是countries得第二和第三个元素。
[注意:]
当你使用slice()或者concat()的时候,并不会影响所操作的原数组的值,每次修改都会创建一个新的数组。
Pop 和 Push
本教程最后要介绍的四个函数是 pop(), push(), shift(), unshift()。
Pop:
这个方法将移除一个数组的最后一个元素。当该元素被移除的时候,你可以将它赋到一个变量中。如下:
seasons = ["summer", "winter", "spring", "autumn"];
capture = seasons.pop();
trace(capture);
trace(seasons);
上面这段代码中,pop函数将seasons的最后一个元素autumn删除,并且保存到capture变量中。如果,你并不想取得最后这个元素的值,也直接使用seasons.pop()来移除seasons的最后一个元素。
Push:
push函数,添加一个或者几个元素到当前的数组。比如:
programs = ["Flash MX", "FireWorks MX"];
programs.push("DreamWeaver MX", "FreeHand MX");
trace(programs);
原数组只有两个元素,执行完push以后,push参数里的两个元素将被加到programs数组尾部。
(本文由精品闪客论坛(http://www.flashbbs.org)翻译,如需...髯匦畔ⅲ恍?/a>)
Shift 和 Unshift
这两个函数和上面的pop和push非常的像。基本的区别是shift和unshift处理的是数组的头部,也就是索引为0的位置。记住,pop和push操作的是数组的尾部。
Shift:
如果,想从一个数组头部,删除一个元素,只要用
programs.shift();就可以了。
当然,如果你想保存被删掉的那个变量的话,只要把函数的执行结果赋给一个变量就可以了。
unshift:
这个函数让你添加一个或者几个值到数组的前端。比如,如果你想在数组前端添加两个元素,代码如下:
programs.unshift("Director MX", "Contribute");
注意unshift不会覆盖你现在数组里的已有元素。
单独使用的话没多大用处,但很多效果都要用到数组的概念,所以数组是必须要学习的,并且可以说是一个重点学习对象.看了很多文章,自己总结一下.
1.建立基本数组的方法
方法一:
//定义Array对象,必须用new关键字
var my_array = new Array(); 方法二:
//定义一个数组,长度为4
var my_array=new Array(4)
//返回数组的长度
trace(my_array.length) 方法三:
//定义一个数组,并定义数组里面的字段
var my_array=new Array("0","1","2","3")
//返回数组字段
trace(my_array) 2.关于二维数组
一般我们用到的数组都是一维数组,但还有多维数组,意思就是说,数组里面还有数组.比如这样的格式
my_array[0][2],下面举例说明
first_array=["1","2","3"]
second_array=["4","5","6"]
third_array=["7","8","9"]
var my_array:Array=new Array(first_array,second_array,third_array)
//my_array=[first_array,second_array,third_array]
trace(my_array)//返回全部的字段
trace(my_array[0][1]//返回2 现在是不是数组里面有数组了.
我们可以用for语句跟数组来配合使用,不然定义数组的话太麻烦了,
var rowNum:Number = 3;
//行树(数组数量)
var listNum:Number = 4;
//一行的内容(数组字段}
temp = 0;
//定义数组
var my_array:Array = new Array();
for (var i = 0; i<rowNum; i++) {
//定义数组
my_array[i] = new Array();
for (var j = 0; j<listNum; j++) {
my_array[i][j] = temp++;
//显示各个数组里面的字段
trace(my_array[i][j]);
}
//显示全部字段
trace(my_array[i]);
}
3.数组的用法
一.合并数组:Array.concat
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt);
txt2 = first_array.concat(second_array, third_array);
trace(txt2);
//返回结果一样 二.符号分割内容:Array.join()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.join("+"));
//返回1+2+3+4+5+6+7+8+9
txt2 = first_array.push(second_array, third_array);
trace(first_array.join("+"));
//1,2,3+4,5,6+7,8,9 三.取出数组内容:Array.slice
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.slice(1, 3));
//返回2,3
txt1 = my_array.push(first_array, second_array, third_array);
//索引起始位置
txt2 = my_array.slice(1, 3);
trace(txt2);
//返回4,5,6,7,8,9 四.显示数组长度:Array.lengh,这个用到的概率最高
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.length);
//返回9
txt1 = my_array.push(first_array, second_array, third_array);
//索引起始位置
trace(my_array.length);
//返回3
txt2 = my_array.slice(1, 3);
trace(txt2.length);
//返回2,上面已经截取了2个,所以返回2 五.显示数组字段的最后一个元素Array.pop()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
my_array.push(first_array, second_array, third_array);
trace(my_array.pop());
//返回7,8,9
txt1 = my_array.concat(first_array, second_array, third_array);
trace(txt1.pop());
//返回9 六.追加数组Array.push()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
first_array.push(second_array, third_array);
trace(first_array);
//返回1,2,3,4,5,6,7,8,9七.倒转数组Array.reverse()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.reverse());
//返回9,8,7,6,5,4,3,2,1
my_array.push(first_array, second_array, third_array);
trace(my_array.reverse());
//返回7,8,9,4,5,6,1,2,3 八.删除数组第一个字段的元素Array.shift()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
//删除第一个字段
txt.shift();
trace(txt);
//返回2,3,4,5,6,7,8,9
//追加数组
my_array.push(first_array, second_array, third_array);
//删除第一个字段
my_array.shift();
trace(my_array);
//返回4,5,6,7,8,9 九.数组的排序Array.sort()
first_array = ["a", "d", "c", "b"];
trace(first_array);
//返回a,d,c,b
trace(first_array.sort());
//返回a,b,c,d 十.将数组内容转化为字符串
first_array = ["a", "d", "c", "b"];
firest_array.toString();
trace(first_array); 十一.追加元素到数组最前端Array.unshift()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
second_array.unshift(first_array);
trace(second_array);
//返回1,2,3,4,5,6 数组的最基本的用法大概都讲到了吧,当然这个只是基础,这里还没用到实例中去,讲的比较枯燥,还有很多要说的,也限于自己的水平,有时间再把自己知道的东西整理出来,免的以后忘了
组的方法,注意数组的第一个元素是Array[0]
var my_array:Array = ["1", "2", "3"];
trace(my_array[0]);
//返回1
trace(my_array[3]);
//返回undefined 1.1修改数组元素:
var my_array:Array = ["1", "2", "3"];
//动态修改数组元素
my_array[0] = "a";
trace(my_array);
//返回a,2,3 1.2追加数组元素:
var my_array:Array = ["1", "2", "3"];
//动态追加元素
my_array[3] = "4";
//返回1,2,3,4 1.3在一维数组里面无法追加二维数组
var my_array:Array = ["1", "2", "3"];
my_array[0][0] = "1";
trace(my_array[0][0]);
//返回undefined 1.4在二维数组里面修改,追加元素
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array(first_array, second_array, third_array);
//或者这样直接这样定义
//var my_array:Array = [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]];
trace(my_array[0]);
//返回1,2,3
my_array[0][0] = "a";
//修改元素
trace(my_array[0]);
//返回a,2,3
my_array[0][3] = "4";
//追加元素
trace(my_array[0]); 2.数组的排序
2.1.调用函数来排序
当我们对函数进行排序时,比如输入A,B两个参数,如果返回-1,表示A排在B前面;返回1,表示A排在B后面;返回1,表示A与B相同,不需要排序.
var my_array:Array = new Array();
my_array = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
trace(my_array);
//返回1,2,3,4,5,6,7,8,9
//调用排序函数
my_array.sort(order);
trace(my_array);
//返回9,8,7,6,5,4,3,2,1
//定义排序函数
function order(a, b) {
if (a>b) {
return -1;
//表示a排在b的前面
} else if (a<b) {
return 1;
//表示a排在b的后面
} else {
return 0;
//表示相同的不进行排序
}
} 2.2对数组元素的字段进行排序Array.sortOn()
先补充一下,数组可以定义字段,然后在字段里面定义元素,定义方法如下
var my_array:Array = new Array();
my_array.push({name:"xzzhangg", age:20, qq:64957997});
my_array.push({name:"xzzhang", age:18, qq:64957996});
my_array.push({name:"zzhangg", age:19, qq:64957986});
//显示字段里的元素
for (var i = 0; i<my_array.length; i++) {
trace(my_array[i]["name"]);
}
//返回
xzzhangg
xzzhang
zzhangg 现在用sortOn方法对指定的字段进行排序
var my_array:Array = new Array();
my_array.push({name:"xzzhangg", age:20, qq:64957997});
my_array.push({name:"xzzhang", age:18, qq:64957996});
my_array.push({name:"zzhangg", age:19, qq:64957986});
//显示字段里的元素
for (var i = 0; i<my_array.length; i++) {
trace("未排序前的排序:"+my_array[i]["age"]);
}
for (var i = 0; i<my_array.length; i++) {
my_array.sortOn("age");
trace("排序后的排序:"+my_array[i]["age"]);
}
//返回结果 未排序前的排序:20
未排序前的排序:18
未排序前的排序:19
排序后的排序:18
排序后的排序:19
排序后的排序:20
2.3使用预设的排列方式
上面的排列方式都是自己设定的,其实Array已经存在着几种预设的排列方式
一.Array.sort(1)
当参数为1时,即告诉函数在排序时,不区分字符大小写
var my_array:Array = ["a", "C", "B", "b"];
trace(my_array);
//返回a,C,B,b
my_array.sort(1);
trace(my_array);
//返回a,b,B,C
my_array.sort();
trace(my_array);
//返回B,C,a,b
my_array.sort(1);
trace(my_array);
//返回a,B,b,C 二.Array.sort(2)
当参数为2时,即告诉函数在排序时,以降冥的字符ASCII码做为排序的依据
var my_array:Array = ["a", "C", "B", "b"];
var Number_array:Array = [1, 2, 3, 4, 5];
trace(Number_array.sort(2));
//返回5,4,3,2,1
trace(my_array);
//返回a,C,B,b
my_array.sort(2);
trace(my_array);
//返回b,a,C,B
my_array.sort();
trace(my_array);
//返回B,C,a,b
my_array.sort(1);
trace(my_array);
//返回a,B,b,C 三,Array.sort(4)
当数组中有两个以上元素时,告诉函数返回0,不对数组进行排序
var my_array:Array = ["a", "C", "B", "b"];
my_array[4] = "a";
my_array.sort(4);
trace(my_array);
//返回a,C,B,b,a
my_array.sort();
trace(my_array);
//返回B,C,a,a,b 其他的用法还可以参考帮助文件,只列出自己了解的用法,这个用法照样可以用到sortOn上,就是对字段进行排序.
翻译:flowind
精品闪客论坛(www.flashbbs.org)
Flash中的数组,就是维护在一个变量下的一组数据。假设你在一张纸上列出一个购买清单,然后在清单上从0开始编号,输入每一个你要购买的东西。
这张清单就是你的数组变量。你需要购买的东西叫做变量值。在flash中,上面这个情况可以用下面这句代码来表示:
grocery = ["bananas", "milk", "rice", "lemons"];
你可以从一个数组进入属于它的每一个元素,数组里的每一个元素都被赋予了一个从0开始的编号。在上面这个例子中,bananas的值是0,milk是1,rice的值是2。
声明一个数组
声明一个数组有几种方法。最简单的方法,就是采用下面这种格式:
variable = ["item0", "item1", "item2"];
如果,你曾经使用过其他的编程语言,你将注意到flash对很多东西都补挑,比如数据何时被加入数组,被加入的数组是什么类型,以及数组的初始长度等。
显示一个数组
复制并粘贴下面这行代码到一个帧里面,然后按Ctrl+Enter键:
grocery = ["bananas", "oranges", "apples", "kiwis"];
trace(grocery);
你会发现你的数组里的数据被显示出来了。如果,数组里的数据很多,你可以只显示数组里的单一的某个元素。前面已经提到,数组里的元素都会从0开始被按1递增的编上一个号。
比如,我们要显示数组的第一个元素,只要把上面的代码中的
trace(grocery); 修改成trace(grocery[0]);
“bananas”就会被显示出来。
如果要显示第二个元素,敲入:
trace(grocery[1]);
你可以通过增加这个索引值,来访问数组中的下一个元素,但是这个索引值不要超过数组中的元素数量。比如,你的数组里有4个元素,如果你用grocery [5]和grocery[4]都会得到一个"undefined"的结果。记住,数组的索引是从0开始的,4的下标实际访问的是一个数组的第5个元素。
在数组尾部添加一个元素
很多情况下,你可能会发现你数组里的元素不够用了。你的“清单”需要更多的内容,有几种方式可以给你的数组添加元素:
其一,你可以直接通过编号给数组赋值。比如,你要给一个拥有4个元素的数组,增加一个元素“potatoes”,你可以这样写:
grocery[4] = "potatoes";
trace(grocery);
这样,potatoes就被加入到这个数组中下标4的位置。当一个元素被加入到数组中的时候,会一直保留在这个数组中,除非你告诉flash,你还要删除他。我们稍后会再提到如何删除数组元素。
更好的方法当然是利用数组的length属性,取得数组的长度。一旦取得数组的长度,你不用手动指定编号,就可以直接给数组添加一个元素到数组尾部了。代码如下:
i = grocery.length;
grocery[i]="butter";
trace(grocery);
在上面的代码中,变量i取得了grocery数组的长度,第二行中,这个长度值被设置为数组新元素的编号。
注意,length属性,只是返回数组里的元素个数,而且,并不是从0开始,而是从1开始。因此,长度值往往等于数组的最后一个元素编号加1。
替换数组元素
替换你数组里的元素非常的简单。如果你对你清单里的第二个元素不太满意,你准备替换成其他物品,可以用如下代码:
grocery[1]="tangerines"; //橘子
trace(grocery);
第二个元素,就是编号为1的元素,就被值tangerines替换掉了。
上面这些是对数组的基本操作,为了让你更好的理解,我们把上面的都合起来。把下面的代码复制到一个帧的代码区中,然后按Ctrl+Enter。
grocery = ["bananas", "oranges", "apples", "kiwis"];
trace(grocery);
grocery[4] = "potatoes";
trace(grocery);
i = grocery.length;
grocery[i]="butter";
trace(grocery);
grocery[1]="tangerines";
trace(grocery);
下面我们介绍数组的一些更高级的操作:
把两个数组合并成一个数组
Flash允许你把两个数组合并成一个数组。比如下面两个数组:
colors = ["blue", "yellow", "green"];
shape = ["square", "triangle", "circle"];
我们可以把这两个数组通过concat()函数合成一个。如果我们要把colors和shape合成一个新的数组drawing,可以用如下代码:
drawing = colors.concat(shape);
这时,drawing数组的内容就变成了:
square,triangle,circle,blue,yellow,green
可以看到,colors数组里的元素排在前面,shape数组里的内容紧紧的跟在后面。
利用slice()创建一个数组
之前我们利用concat()函数,把两个数组合成了一个数组,slice的功能与之相反。slice()通过从其他数组中提取出一段数据来创建数组。
比如,看下面这个数组:
countries = ["germany", "italy", "norway", "finland", "united states", "india"]
我们可以用如下代码来提取元素:
country2 = countries.slice(2,4);
这行代码将提取数组中的从开始索引处得元素到的到索引4的元素,但是不包括索引4的元素。代码执行完后,country2数组,将会包含两个元素norway和finland,分别是countries得第二和第三个元素。
[注意:]
当你使用slice()或者concat()的时候,并不会影响所操作的原数组的值,每次修改都会创建一个新的数组。
Pop 和 Push
本教程最后要介绍的四个函数是 pop(), push(), shift(), unshift()。
Pop:
这个方法将移除一个数组的最后一个元素。当该元素被移除的时候,你可以将它赋到一个变量中。如下:
seasons = ["summer", "winter", "spring", "autumn"];
capture = seasons.pop();
trace(capture);
trace(seasons);
上面这段代码中,pop函数将seasons的最后一个元素autumn删除,并且保存到capture变量中。如果,你并不想取得最后这个元素的值,也直接使用seasons.pop()来移除seasons的最后一个元素。
Push:
push函数,添加一个或者几个元素到当前的数组。比如:
programs = ["Flash MX", "FireWorks MX"];
programs.push("DreamWeaver MX", "FreeHand MX");
trace(programs);
原数组只有两个元素,执行完push以后,push参数里的两个元素将被加到programs数组尾部。
(本文由精品闪客论坛(http://www.flashbbs.org)翻译,如需...髯匦畔ⅲ恍?/a>)
Shift 和 Unshift
这两个函数和上面的pop和push非常的像。基本的区别是shift和unshift处理的是数组的头部,也就是索引为0的位置。记住,pop和push操作的是数组的尾部。
Shift:
如果,想从一个数组头部,删除一个元素,只要用
programs.shift();就可以了。
当然,如果你想保存被删掉的那个变量的话,只要把函数的执行结果赋给一个变量就可以了。
unshift:
这个函数让你添加一个或者几个值到数组的前端。比如,如果你想在数组前端添加两个元素,代码如下:
programs.unshift("Director MX", "Contribute");
注意unshift不会覆盖你现在数组里的已有元素。
单独使用的话没多大用处,但很多效果都要用到数组的概念,所以数组是必须要学习的,并且可以说是一个重点学习对象.看了很多文章,自己总结一下.
1.建立基本数组的方法
方法一:
//定义Array对象,必须用new关键字
var my_array = new Array(); 方法二:
//定义一个数组,长度为4
var my_array=new Array(4)
//返回数组的长度
trace(my_array.length) 方法三:
//定义一个数组,并定义数组里面的字段
var my_array=new Array("0","1","2","3")
//返回数组字段
trace(my_array) 2.关于二维数组
一般我们用到的数组都是一维数组,但还有多维数组,意思就是说,数组里面还有数组.比如这样的格式
my_array[0][2],下面举例说明
first_array=["1","2","3"]
second_array=["4","5","6"]
third_array=["7","8","9"]
var my_array:Array=new Array(first_array,second_array,third_array)
//my_array=[first_array,second_array,third_array]
trace(my_array)//返回全部的字段
trace(my_array[0][1]//返回2 现在是不是数组里面有数组了.
我们可以用for语句跟数组来配合使用,不然定义数组的话太麻烦了,
var rowNum:Number = 3;
//行树(数组数量)
var listNum:Number = 4;
//一行的内容(数组字段}
temp = 0;
//定义数组
var my_array:Array = new Array();
for (var i = 0; i<rowNum; i++) {
//定义数组
my_array[i] = new Array();
for (var j = 0; j<listNum; j++) {
my_array[i][j] = temp++;
//显示各个数组里面的字段
trace(my_array[i][j]);
}
//显示全部字段
trace(my_array[i]);
}
3.数组的用法
一.合并数组:Array.concat
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt);
txt2 = first_array.concat(second_array, third_array);
trace(txt2);
//返回结果一样 二.符号分割内容:Array.join()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.join("+"));
//返回1+2+3+4+5+6+7+8+9
txt2 = first_array.push(second_array, third_array);
trace(first_array.join("+"));
//1,2,3+4,5,6+7,8,9 三.取出数组内容:Array.slice
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.slice(1, 3));
//返回2,3
txt1 = my_array.push(first_array, second_array, third_array);
//索引起始位置
txt2 = my_array.slice(1, 3);
trace(txt2);
//返回4,5,6,7,8,9 四.显示数组长度:Array.lengh,这个用到的概率最高
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.length);
//返回9
txt1 = my_array.push(first_array, second_array, third_array);
//索引起始位置
trace(my_array.length);
//返回3
txt2 = my_array.slice(1, 3);
trace(txt2.length);
//返回2,上面已经截取了2个,所以返回2 五.显示数组字段的最后一个元素Array.pop()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
my_array.push(first_array, second_array, third_array);
trace(my_array.pop());
//返回7,8,9
txt1 = my_array.concat(first_array, second_array, third_array);
trace(txt1.pop());
//返回9 六.追加数组Array.push()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
first_array.push(second_array, third_array);
trace(first_array);
//返回1,2,3,4,5,6,7,8,9七.倒转数组Array.reverse()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
trace(txt.reverse());
//返回9,8,7,6,5,4,3,2,1
my_array.push(first_array, second_array, third_array);
trace(my_array.reverse());
//返回7,8,9,4,5,6,1,2,3 八.删除数组第一个字段的元素Array.shift()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array();
//合并数组
txt = my_array.concat(first_array, second_array, third_array);
//删除第一个字段
txt.shift();
trace(txt);
//返回2,3,4,5,6,7,8,9
//追加数组
my_array.push(first_array, second_array, third_array);
//删除第一个字段
my_array.shift();
trace(my_array);
//返回4,5,6,7,8,9 九.数组的排序Array.sort()
first_array = ["a", "d", "c", "b"];
trace(first_array);
//返回a,d,c,b
trace(first_array.sort());
//返回a,b,c,d 十.将数组内容转化为字符串
first_array = ["a", "d", "c", "b"];
firest_array.toString();
trace(first_array); 十一.追加元素到数组最前端Array.unshift()
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
second_array.unshift(first_array);
trace(second_array);
//返回1,2,3,4,5,6 数组的最基本的用法大概都讲到了吧,当然这个只是基础,这里还没用到实例中去,讲的比较枯燥,还有很多要说的,也限于自己的水平,有时间再把自己知道的东西整理出来,免的以后忘了
组的方法,注意数组的第一个元素是Array[0]
var my_array:Array = ["1", "2", "3"];
trace(my_array[0]);
//返回1
trace(my_array[3]);
//返回undefined 1.1修改数组元素:
var my_array:Array = ["1", "2", "3"];
//动态修改数组元素
my_array[0] = "a";
trace(my_array);
//返回a,2,3 1.2追加数组元素:
var my_array:Array = ["1", "2", "3"];
//动态追加元素
my_array[3] = "4";
//返回1,2,3,4 1.3在一维数组里面无法追加二维数组
var my_array:Array = ["1", "2", "3"];
my_array[0][0] = "1";
trace(my_array[0][0]);
//返回undefined 1.4在二维数组里面修改,追加元素
first_array = ["1", "2", "3"];
second_array = ["4", "5", "6"];
third_array = ["7", "8", "9"];
var my_array:Array = new Array(first_array, second_array, third_array);
//或者这样直接这样定义
//var my_array:Array = [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]];
trace(my_array[0]);
//返回1,2,3
my_array[0][0] = "a";
//修改元素
trace(my_array[0]);
//返回a,2,3
my_array[0][3] = "4";
//追加元素
trace(my_array[0]); 2.数组的排序
2.1.调用函数来排序
当我们对函数进行排序时,比如输入A,B两个参数,如果返回-1,表示A排在B前面;返回1,表示A排在B后面;返回1,表示A与B相同,不需要排序.
var my_array:Array = new Array();
my_array = ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
trace(my_array);
//返回1,2,3,4,5,6,7,8,9
//调用排序函数
my_array.sort(order);
trace(my_array);
//返回9,8,7,6,5,4,3,2,1
//定义排序函数
function order(a, b) {
if (a>b) {
return -1;
//表示a排在b的前面
} else if (a<b) {
return 1;
//表示a排在b的后面
} else {
return 0;
//表示相同的不进行排序
}
} 2.2对数组元素的字段进行排序Array.sortOn()
先补充一下,数组可以定义字段,然后在字段里面定义元素,定义方法如下
var my_array:Array = new Array();
my_array.push({name:"xzzhangg", age:20, qq:64957997});
my_array.push({name:"xzzhang", age:18, qq:64957996});
my_array.push({name:"zzhangg", age:19, qq:64957986});
//显示字段里的元素
for (var i = 0; i<my_array.length; i++) {
trace(my_array[i]["name"]);
}
//返回
xzzhangg
xzzhang
zzhangg 现在用sortOn方法对指定的字段进行排序
var my_array:Array = new Array();
my_array.push({name:"xzzhangg", age:20, qq:64957997});
my_array.push({name:"xzzhang", age:18, qq:64957996});
my_array.push({name:"zzhangg", age:19, qq:64957986});
//显示字段里的元素
for (var i = 0; i<my_array.length; i++) {
trace("未排序前的排序:"+my_array[i]["age"]);
}
for (var i = 0; i<my_array.length; i++) {
my_array.sortOn("age");
trace("排序后的排序:"+my_array[i]["age"]);
}
//返回结果 未排序前的排序:20
未排序前的排序:18
未排序前的排序:19
排序后的排序:18
排序后的排序:19
排序后的排序:20
2.3使用预设的排列方式
上面的排列方式都是自己设定的,其实Array已经存在着几种预设的排列方式
一.Array.sort(1)
当参数为1时,即告诉函数在排序时,不区分字符大小写
var my_array:Array = ["a", "C", "B", "b"];
trace(my_array);
//返回a,C,B,b
my_array.sort(1);
trace(my_array);
//返回a,b,B,C
my_array.sort();
trace(my_array);
//返回B,C,a,b
my_array.sort(1);
trace(my_array);
//返回a,B,b,C 二.Array.sort(2)
当参数为2时,即告诉函数在排序时,以降冥的字符ASCII码做为排序的依据
var my_array:Array = ["a", "C", "B", "b"];
var Number_array:Array = [1, 2, 3, 4, 5];
trace(Number_array.sort(2));
//返回5,4,3,2,1
trace(my_array);
//返回a,C,B,b
my_array.sort(2);
trace(my_array);
//返回b,a,C,B
my_array.sort();
trace(my_array);
//返回B,C,a,b
my_array.sort(1);
trace(my_array);
//返回a,B,b,C 三,Array.sort(4)
当数组中有两个以上元素时,告诉函数返回0,不对数组进行排序
var my_array:Array = ["a", "C", "B", "b"];
my_array[4] = "a";
my_array.sort(4);
trace(my_array);
//返回a,C,B,b,a
my_array.sort();
trace(my_array);
//返回B,C,a,a,b 其他的用法还可以参考帮助文件,只列出自己了解的用法,这个用法照样可以用到sortOn上,就是对字段进行排序.
相关推荐
【新技术培训 培训讲义2_AS3数组.doc】这篇文档主要讲解了ActionScript 3中的数组概念、声明方式以及一系列的操作函数。数组在计算机编程中是一个基础且重要的数据结构,它允许我们存储和操作多个同类型或异类型的...
### Flash AS3 数组冒泡排序详解 #### 冒泡排序简介 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复进行的,直到没有...
数组定义是: allarr.push({_id:"55",_name:"11111",_ohe:"ffdfdfd"}); allarr.push({_id:"332",_name:"2222",_ohe:"ffdfdfd"}); allarr.push({_id:"422",_name:"3333",_ohe:"ffdfdfd"}); allarr.push({_id:"55",_...
flex.3的语法讲座,swf格式,共6课。
在ActionScript 3(简称AS3)中,处理数据集合时,经常需要找到数组中的最小值或最大值。本文将详细介绍如何使用AS3来实现这一功能,并深入探讨其背后的原理和技术要点。 #### 知识点一:数组排序方法 `sort()` 在...
通过这个“Flash AS3 自学教程”,你将能够熟练运用AS3进行动态内容的开发,理解并掌握类的使用、数组操作、逻辑控制以及代码优化等关键知识点。无论你是初学者还是有经验的开发者,这个教程都将为你提供宝贵的资源...
as3.0代码在字符串数组转换上的运用,是一个不错的学习材料
关于as3中二维数组的建立和使用,初学flash动作编程的同学学习下。。。
总的来说,AS3数字拼图小游戏不仅涉及基本的数组操作和条件判断,还包括事件处理、动画制作、游戏逻辑设计等多个方面,是学习AS3编程和游戏开发的一个理想实践项目。通过深入研究和实践,你可以掌握许多实用的AS3...
用数组实现雪花飘落,可调节雪花大小,透明度,运动速度,进一步理解掌握AS中数组的运用
3. **AS3数组**:讲解如何创建和操作数组,包括一维数组、二维数组以及动态数组的使用技巧。 4. **AS3的显示文本**:如何控制和操作Flash中的文本元素,包括格式化文本、动态文本和静态文本的区别。 5. **AS3的...
2. 数组运算:AS3CoreLib提供了一些增强的数组操作方法,例如`ArrayUtil`类,它包括了排序、查找、去重等实用功能。这些工具可以简化对数组的操作,提高代码的可读性和效率。 3. 网络连接:库中的`Net`类提供了一套...
Dim 数组名(下界 To 上界) As 类型 = {值1, 值2, ..., 值n} ``` 例如,创建一个包含5个整数元素的数组并初始化它们: ```vb Dim numbers(0 To 4) As Integer = {1, 2, 3, 4, 5} ``` ### 2. 动态初始化 动态初始...
ReDim Preserve arr(1 To 10) As Integer ' 扩展数组大小到10个元素,保留原有数据 ``` `Preserve`关键字用于在扩展或缩小数组大小时保持原有的元素值。 4. **动态数组的限制** 尽管动态数组很灵活,但它也有一些...
- 三维数组:`Arr3(5 to 10, 6 to 12, 1 to 100)` 使用`UBound`函数可以获得数组某一维度的最大索引值。 **示例:** ```vba Dim Arr(1 To 12) As Integer Dim maxIndex As Integer maxIndex = UBound(Arr) ' ...
本文实例讲述了Python使用numpy模块创建...import numpy as np ndarray1 = np.array([1, 2, 3, 4]) ndarray2 = np.array(list('abcdefg')) ndarray3 = np.array([[11, 22, 33, 44], [10, 20, 30, 40]]) zeros和zeros
Dim myArray(2, 3) As Integer ``` 三、初始化多维数组 初始化多维数组可以在声明时进行,也可以在程序运行时通过循环赋值。例如,初始化上述数组为特定值: ```vb For i = 0 To 2 For j = 0 To 3 myArray(i, j) ...
3. **多维数组**:除了二维,还可以创建三维或更多维度的数组,适应更复杂的逻辑结构。多维数组的声明方式与二维类似,只是增加更多的维度。 在VB中,数组的初始化和操作也是学习的重点: - **初始化**:可以使用...
newNumbers = RemoveElementFromArray(numbers, 3) '创建新数组不包含3 ``` 在这两个例子中,我们都是通过遍历数组找到要删除的元素,并采取相应的操作。需要注意的是,这两种方法都不会改变原数组的大小,只是改变...
Dim tableArray(3, 4) As String '3行4列的表格 ``` 总的来说,理解和掌握VB中的数组是提高编程效率的关键。通过动态数组,我们可以灵活地处理各种规模的数据,而无需每次都创建新的变量。在实际项目中,善用数组能...