| 
 
 | Actionscript中的数组 难度: 中级
 软件环境: Flash 5
 
 
 
 假如你对数组感性趣的话,那么你也一定了解变量吧。变量是装着数据的容器,数据可以是数字、字符串或者是个布尔值。
 数组与变量相似同样是做为数据的容器,但它还能包含更多的数据,每一个元素(数据中的一部分)都被附于一个索引。
 
 数组可以用来保存你的脚本和组织结构,它们通常用来去组织一些在某些方面有些关联的数值,这些数值采用一个索引值
 与数组中其它的元素区分开来。你可以用下面这个方式 去定义 3个变量::
 
 quote1="Flash is cool!"
 quote2="Flash is my favourite program"
 quote3="Flash rules"
 
 显然有一个更好的方式 去实现上面的例子 那就是 使 用 数组。有很多的方式可以创建 一个数组,但我首先展示的是最简朴的方式:
 
 name_of_array=new Array()
 
 所以我们想去引用一个数组的话,就用这个:
 
 quotes=new Array()
 
 很好,现在我们有了一个数组了,但问题是那里面没有任何的数据,它是没有用处的,所以我们现在把数据放到我们的数组里面,我们
 用一个索引号码去定义它在数组中的位置。
 
 
 我们可以用下面的方式 把第一个元素放到数组中:
 
 quotes[0]="Flash is cool!"
 
 我要说的是在Flash 5中数组索引下标是基于0的,意思是在数组中的第一个元素它的索引值为0。
 因此我们可以在我们的数组中的第二个元素中放入一个数据:
 
 quotes[1]="Flash is my favourite program"
 
 使用如下语法可以添满数组内所有元素:
 
 name_of_array[index]=value
 
 说明:上面的name_of_array是你数组的名子,index是你想要增加到你的数组中数据的位置。
 因此我们更早的创建了使用变量的代码:
 
 quote1="Flash is cool!"
 quote2="Flash is my favourite program"
 quote3="Flash rules"
 
 
 也可以被写成这样:
 
 quotes=new Array()
 quotes[0]="Flash is cool!"
 quotes[1]="Flash is my favourite program"
 quotes[2]="Flash rules"
 
 我们还可以采有如下的语法去创建:
 
 name_of_array=new Array("value1","value2","value3")
 这是一个在一行代码中 实现的,value1 是数组中第一个元素 value2是数组中第二个元素,以此类推。
 我们使用如下语法创建我们引用的数组:
 quotes=new Array("Flash is cool!","Flash is my favourite program","Flash rules") 假如有任何疑问,请直接于作者联系!mailto:flashguru@flashkit.com
 现在我们知道该如何创建数组,并且如何去使用,在下面的这个语法中同样可以去创建 一个数姐:
 
 name_of_array=["value1","value2","value3"]
 
 这个与前面不同的是 没有使用数组对像(new Array())
 所以我们可以这样创建引用的数组 代码如下:
 
 quotes=["Flash is cool!","Flash is my favourite program","Flash rules"]
 
 我不管你用什么方式做做,但我还是喜欢用这最后一个方式去创建数组,它是如此的简朴。
 现在我们知道 怎么创造数组,但是有时你想在脚本中访问你的数组,嗯 幸运的是还有一种方式可以实现它:
 
 mynewvariable=name_of_array[index]
 
 那么我们想去为一个新的变量附值为数组中第一个元素的值话 请这样做:
 
 firstquote=quotes[0]
 
 这个名为firstquote的新变量值就是“Flash is cool!”
 
 在脚本中数组的实现
 设想一下 假如我们想得出数组中所有的元素,但是我们并不知道数组中有多少个元素啊,还好的是Flash中为
 数组对像设置了若干属性与方式,其中有一个属性为Length可以得出该数组中元素的个数。
 
 语法如下:
 
 myarraylength=name_of_array.length
 
 上面的这段代码创建了一个新变量,里面的值 就是你所指定的数组对像(name_of_array)元素的个数。
 在我们引用数组的情况中,使用下面的代码得到数组中元素的个数:
 如果quotes是一个数组的话那么
 len=quotes.length 这个len变量 的值 就是该数组的长度
 
 数组的长度等于它的最高索引值加1。最高索引值假如是2的话那么这个数组的长度就是3,也就是说它里面有
 3个元素,原因就在于Flash 5中 数组下标是基于0的。
 
 现在我们知道了如何去用数组的Length属性了,采用下面的脚本可以得出数级中所有元素的值。
 
 for(z=0;z<name_of_array.length;++z){
 write(name_of_array[z])
 }
 
 让我们逐步来分析一下上面的代码。
 首先创建了一个临时的变量 z
 
 z=0
 
 下列的代码是一个循环的条件,当变量z小于数组的元素长度就循环
 
 z<name_of_array.length
 
 然后 再作变量z的增量 使它本身加1 ;
 ++z
 
 你可以在这里面放入你需要的代码 它们会被执行(name_of_array.length的值)次
 
 for(z=0;z<quotes.length;++z){
 ...
 }
 
 
 Associative arrays:
 
 关联数组可以提供另一种存储信息的方式,用它你可以实现采用字符串做为数组的下标而不是一个数字,这样会更轻易记忆。
 这样的不便是在循环中不能被采用,因为它不是一个数值。
 
 关联数组的定义与变通数组是一样的,而唯一不同的是它采用字符串 作为索引下标
 
 请看下面的例子,我们定义一个汽车的数组:
 
 mycars=new Array()
 mycars[0]="peugoet 306"
 mycars[1]="citreon saxo"
 mycars[2]="ford fiesta"
 
 这是关联数组的格式:
 
 mycars=new Array()
 mycars["fast"]="peugoet 306"
 mycars["sporty"]="citreon saxo"
 mycars["old"]="ford fiesta"
 
 用字符做索引值有时会很有用,但当在循环中检索数组是异常的不便。
 
 现在当要得到这种类型数组中的值,你就得用字符串做为索引了,参照上面的例子写出:
 
 mysportycar=mycars["sporty"]
 
 结果就是变量mysportyca的值 就是"citreon saxo"
 返回类别: Flash教程
 上一教程: FLASH右键菜单的应用
 下一教程: 用另一种方法处理RPG地图---用好两个图层
 
 您可以阅读与"Actionscript中的数组"相关的教程:
 · ActionScript数组使用小结
 · Actionscript中的本地连接
 · Actionscript中的高级路径
 · FLASH中的数据类型和变量研究
 · Flash5 ActionScript入门学习-Action Script中的变量
 
 |