减小字体
增大字体
[学习目标]:掌握数组的定义、属性、方法、引用。学会用for语句对数组进行初始化。 上个教程给大家介绍了as的内置类中的String类和Number类,很简单的就是用""括起来的一串字符。 对于变量,我在前面给大家说了,就是存储数据的容器,如果在as中我们需要几十个、或者是几百个变量,命名起来就麻烦多了,调用起来就名称的记忆也不方便。好在as也为我们提供了数组这个类,有了这个类,取1个名称,然后通过后面加数字序列很方便的去调用了,另外它还有许多系统提供的方法我们去调用,比如Array.sort()和Array.sortOn() ,可以排序,比一般的变量,功能强大多了吧。 一、数组是什么? 对数组这个概念,你可以从多方面理解,它是类、是对象、是变量,所以比较直观的理解就是变量了,如果前面我们接触的变量好象一个个的分散的平房,那数组就是我们住的大楼了,到平房找人必须麻烦,在大楼找人简单,知道房间号就搞定了。 二、数组做什么用? 数组的用处很大,就是提供给我们仓库,让我们放数据的,在as编程中,我们可以放置MC等的坐标,可以保存有关联的若干串,也可以保存你从外部调入的mp3的列表,更可以在游戏flash中,保存位置、进度、状态、在跟asp结合的flash中更可以借助xml做数据的缓冲池,反正是用处太广了,所以大家必须会用数组的。 三、数组的创建 作为编程来说,养成个好习惯,先定义,再使用,这个也是必须的,数组也是这样的,要先定义,数组是属于Array类的。 假设我们在as里面需要用到4个学生的名字,一般我们是这样定义一个个的去定义变量: var stname1, stname2, stname3,stname4;如果需要100个学生名字,更麻烦,改成现在的数组就简单多了。 1、用new 运算符来创建数组 数组是Array类,new运算符是可以创建任何类的实例的,今后我们会反复多次的用到,它的格式是:new constructor(); 这里的constructor就是函数名,是和类名相同的函数名,其实就是类的构造函数。 ①、指定数目: var stuname:Array=new Array(4); ②、也可以先不指定数目: var stuname:Array=new Array(); ③、把值一起赋上: var stuname:Array=new Array("小狗","小猫","小猪","小狐狸"); 注意,各个值间用的是逗号呀。 2、用[] 运算符创建数组 []是数组访问运算符,用它可以创建、赋值、动态访问数组等等 上面的例子我们也可以这样做: ①、不指定数目: var stuname:Array=[]; ②、把值一起赋上: var stuname:Array =["小狗","小猫","小猪","小狐狸"]; 看2个的区别,new可以指定数组数目,[]指定也没有意义,数组长度总是1。 四、数组元素的引用 上面我们定义了数组,也知道数组就好象变量的集合一样,那如何引用数组的每一个对象呢,在数组中每个对象有个名字叫数组元素,比如我们上面定义的stname数组就有4个元素组成的。数组元素引用就用到数组访问运送符[]了,数组名字再加个索引下标就是数组元素,比如stname[0]是第一个元素、stname[1]是第二个元素、stname[2]是第三个元素。这个索引就标识了他们的位置,一定注意,索引从0开始的。可以看出数组元素引用格式: 数组名[索引] 1、初始化 var stname:Array=new Array(); stname[0]="小狗"; stname[2]="小猫"; 跟普通变量的赋值是一样的。但如果你没有第一个var stname:Array=new Array();就是错误的。 2、调用 var tempname; tempname=stname[2]; 也可以动态的调用的,比如: var i = 3, mymc = []; mymc[i-1] = i+1; trace(mymc[i-1]);//结果4 可以结合后面我们介绍的循环还实现。这里的trace是个在测试模式下,计算表达式并在"输出"面板中显示结果的函数。 另外 ,用字符做索引值有时会很有用,但当在循环中检索数组是非常的不便。 my_Array = new Array(); my_Array["one"] = "张三"; my_Array["two"] = "李四"; trace(my_Array["two"]);//李四 五、数组对象的属性 属性说明 Array.length指定数组中元素数量。 比如: var mymc = []; trace(mymc.length);//结果0 mymc.length=98; trace(mymc.length);//结果98 Array.length应用太广了,大家一定要记着。 六、数组对象的12个方法 方法说明 Array.concat()连接参数,并将其作为新数组返回。 Array.join()将数组内的所有元素联接为一个字符串。 Array.pop()删除数组中最后一个元素,并返回该元素的值。 Array.push()将一个或多个元素添加到数组的结尾,并返回该数组的新长度。 Array.reverse()倒转数组的方向。 Array.shift()删除数组中第一个元素,并返回该元素的值。 Array.slice()提取数组中的一部分,并将该部分作为新数组返回。 Array.sort()就地对数组进行排序。 Array.sortOn()基于数组中的某个字段对数组进行排序。 Array.splice()在数组中添加元素和删除元素。 Array.toString()返回表示 Array 对象中元素的字符串值。 Array.unshift()将一个或多个元素添加到数组的开头,并返回该数组的新长度。 七、for语句 前面我给大家说了选择语句,根据不同的条件去执行不同的语句,现在再给大家介绍个循环语句,循环就是反复的去做,就好比体育课老师让你围着操场跑步,你就一圈圈的跑呀跑的,什么时间停止呢,老师喊停或者你累了、摔到了,老师喊停,是让你永远不跑了,摔到了、累了是暂时的停,起来还要继续的,看,停止的情况不一样的。在编程中是一样的,循环的执行语句,要有停止条件的,否则就是死循环了,在循环中,有2个语句是来控制循环停止的,①break;②continue; 2个就跟我们上面的例子类似,break;就是永远的退出循环,就是老师喊停让你打球去,continue;就是停止本次循环,休息完你接着跑了。循环有多个语句形式:①for ②for in ③ while④do while,这里我们介绍for语句。 for是个计数循环,就是循环的次数是固定的。它的格式是: for(init; condition; next) { 循环做的事情; } 在这里init是初始条件,condition是个条件,满足这个条件就循环。next就个记数变化的量。 比如我们要给数组元素赋偶数: my_array=new Array(); for(i=0; i<10; i++) { my_array [i] = i*2; } trace(my_array.jion("--"));//0--2--4--6--8--10--12--14--16--18 for(i=0; i<my_array.length; i++) { trace(my_array[i]); } 赋值引用都特别的简单。 八、多维数组 多维数组就是数组元素本身也是数组,比如我们要在as中创建个4个同学的2门成绩的成绩单。就好象一个表格了,每行是一个学生的成绩,有4行。每列是具体的一门成绩,共4列。用数组表示: ①//定义我们的二维数组 var my_Array = new Array(4); for (var i = 0; i<my_Array.length; i++) { my_Array[i] = new Array(2); } ②也可以这样: var my_Array = new Array(); for (var i=0; i<4; i++) { my_Array.push(new Array(2)); } ③更简单可以通过嵌套括号来模拟多维数组。 my_Array = [[98,89],[50,60],[100,90],[77,90]]; 数组元素我们可以用个表格表示: my_Array[0][0] my_Array[0][1] my_Array[1][0]my_Array[1][1] my_Array[2][0]my_Array[2][1] my_Array[3][0]my_Array[3][1] 行:第一索引。列:第二索引 访问二维数组元素的格式:数组名[行索引][列索引] my_Array= [[1,2,3],[4,5,6],[7,8,9]]; for (var i=0; i<3; i++) { for(var ji=0;j<3;j++) trace(my_Array[i][j]; } var temp=my_Array[2][0]; trace(temp);//7 这里用了循环的嵌套来对二维数组赋值或者引用的,外层循环次数是行数、内层循环是列数。
|