您的位置:首页 > 其它

每天学一点flash(83) 数组中过滤

2011-10-30 21:56 495 查看
也有一段时间没有静下来写一些东西,最近比较忙碌,其他原因也是因为没有电脑的缘故,每天下班回去只能躺在床上睡觉。呵呵,今天难得有点时间,就想到写一点简单的东西。最近想到一个装备颜色过滤的东西,一直想不懂怎样过滤才好。最好查询一下API ,Array 数组有一个APi可以做到这些事情。过滤到相应的数组就能达到想要的效果了。

filter(callback:Function, thisObject:* = null):Array
对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回 true。


下面做一个很简单实验测试:



import flash.events.*;
import flash.text.TextField;

var msg:TextField=new TextField();
addChild(msg);
msg.border=true;
msg.autoSize=TextFieldAutoSize.LEFT;
msg.x=300;
msg.selectable=false;
msg.mouseEnabled=false;
msg.y=100;

var resultMsg:TextField=new TextField();
addChild(resultMsg);
resultMsg.border=true;
resultMsg.width=150;
resultMsg.height=150;
resultMsg.x=100;
resultMsg.selectable=false;
resultMsg.mouseEnabled=false;
resultMsg.y=100;

//简单装备信息描述
var equipArray:Array = new Array();
equipArray.push({name:"红色 金刚枪", type:1});
equipArray.push({name:"蓝色 雨土箭", type:2});
equipArray.push({name:"蓝色 羽毛扇", type:2});

equipArray.push({name:"绿色 星王剑", type:3});

equipArray.push({name:"蓝色 混天箭", type:2});
equipArray.push({name:"橙色 大神扇", type:4});

equipArray.push({name:"绿色 百合剑", type:3});
equipArray.push({name:"绿色 神速箭", type:3});

equipArray.push({name:"紫色 金刚扇", type:5});
equipArray.push({name:"紫色 顿王剑", type:5});

trace("武器列表:");
equipArray.forEach(traceEquipInfo);

function doFilter(element:*, index:int, arr:Array):Boolean
{
	return (element.type==(type+1))==true;
}
function traceEquipInfo(element:*, index:int, arr:Array):void
{
	resultMsg.appendText(element.name +"\n");
}

var colorArray:Array=["红色","蓝色","绿色","橙色","紫色"];

stage.addEventListener(MouseEvent.CLICK,onChnageColor);
var type:int;//颜色类型

function onChnageColor(event:MouseEvent):void
{
	type=Math.random()*5;
	trace(type);
	msg.text=colorArray[type]+"类型:"+(type+1);
changeEquip();	
}

function changeEquip():void
{
   var managers:Array = equipArray.filter(doFilter);
   resultMsg.text="";
   managers.forEach(traceEquipInfo);
}




点击 之后 就可以看到过滤了。 过滤的规则很简单就是让装备类型 等于它即可。

return (element.type==(type+1))==true;



这样一个简单颜色过滤就可以过滤完成,这个只是一个很少的简单实验,相信后续改过会有不错的效果,这个只是很少的个人想法而已。希望之后可以深入这个过滤规则。

好,今晚就到这里了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: