admin管理员组文章数量:1530517
2024年5月12日发(作者:)
Action Script 3.0 搜索数组中的元素
用ActionScript编写的程序在执行过程中,可能需要访问数组中匹配指定值的元素,
这就需要对数组中所有的元素进行搜索。搜索和遍历的不同在于,遍历的目的是为了访问
整个数组中每一个元素,而搜索则是有针对性地访问某个符合要求的元素。
在ActionScript中,搜索数组中的元素需要使用到类Array中的indexOf()和lastIndexOf()
两种方法。indexOf()方法的作用是从索引号为0的元素开始,搜索数组中是否包含某个元
素。该方法有两个参数,分别为searchElement和fromIndex。
searchElement参数
该参数可以为任意类型的变量。定义该参数的值后,indexOf()方法即可搜索某个数组
中是否包含与该参数值相等的元素。
fromIndex参数
该参数的作用是定义搜索数组元素的起始索引号。其值为int类型变量,默认值为0。
indexOf()方法可以返回int类型的变量值。如在数组中搜索到与searchElement参数相
等的元素,则返回该元素的索引号。否则将返回-1。
例如,在一个包含20以内所有平方数的数组中,查找是否包含数值169,如下所示。
var SquareNumber:Array=new Array(),i:int,m:int;//声明并创建函数SquareNumber
for (i=1; i<=20; i++) {//创建关于i的循环
m=i*i;//求出i的平方值
SquareNumber [i-1]=m;//将i的平方值定义为数组的元素
}
trace(f(169,0));
执行上面的代码,即可使indexOf()方法返回数组SquareNumber中是否包含169。通
过使用indexOf()方法,可以制作一些查找数组元素的实例。例如,数组aa包含所有清华
电脑学堂出版的图书,用户输入图书的名称,即可了解图书是否为清华电脑学堂系列教材,
其代码如下所示。
stop();//暂停播放
faultContextMenu=false;
//屏蔽右键菜单
e=false;
//隐藏输出时的动态文本组件
ntListener(,enterbutton);
//监听确定按钮的鼠标事件
function enterbutton(event:MouseEvent) {
//声明按钮事件触发的函数
e=false;
//鼠标事件隐藏输入图书名称的组件
var bookname:String=;
//为输入图书名称的文本框组件赋值
e=true;
//显示输出的动态文本组件
var booklist:Array=new Array();
//声明图书名称的数组
booklist[1]="3DS MAX 2008中文版标准教程";
booklist[2]="3DS MAX 7三维造型与动画制作标准教程";
//…………
booklist[125]="中文版Photoshop和CorelDRAW平面创意设计实践教程";
//为数组添加元素
if (f(bookname,0)!=-1) {
//通过indexOf方法判断输入的图书名称是否属于数组元件
="感谢您的购买,这本书属于《清华电脑学堂》丛书";
//如果是,则输出这段文本到动态文本组件中
} else {//否则
="非常抱歉,这本书并不属于本丛书";
//输出这段文本到动态文本组件中
}
}
将代码添加到动画中,即可输入图书的名称,并查找其是否属于数组中的元素,如图
5-4所示。
输入已收录的图书名称 单击【查找】按钮返回文本
输入未收录的图书名称 单击【查找】按钮返回文本
图5-4 图书查询实例
indexOf()方法可以从索引号为0的元素开始检索任何数组中的元素,找出符合要求的
元素并返回索引号。除了indexOf()的方法外,ActionScript还支持用lastIndexOf()方法从索
引号最大的元素开始,以和indexOf()方法完全相反的方向检索数组中的元素,找出符合要
求的元素并返回索引号。
lastIndexOf()方法的使用与indexOf()相同,但有可能因数组元素的重复而返回不同的
值。例如,分别用indexOf()和lastIndexOf()两种方法在数组[a,d,o,b,e,f,l,a,s,h]中检索元素a,
如下所示。
var char:Array=new Array("a","d","o","b","e","f","l","a","s","h");
//声明一个由10个字符串变量组成的数组
trace ("从前往后进行检索得出的结果,第"+f("a")+"个元素为a");
//从索引号为0的元素开始检索
trace ("从后往前进行检索得出的结果,第"+dexOf("a")+"个元素为a");
//从索引号最大的元素开始检索
通过执行上面的代码,可以反映出indexOf()方法和lastIndexOf()方法的区别,如下所
示。
从前往后进行检索得出的结果,第0个元素为a
从后往前进行检索得出的结果,第7个元素为a
版权声明:本文标题:Action Script 3.0 搜索数组中的元素 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1715485580a454568.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论