加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:40:31 所属栏目:百科 来源:网络整理
导读:????? 也有一段时间没有静下来写一些东西,最近比较忙碌,其他原因也是因为没有电脑的缘故,每天下班回去只能躺在床上睡觉。呵呵,今天难得有点时间,就想到写一点简单的东西。最近想到一个装备颜色过滤的东西,一直想不懂怎样过滤才好。最好查询一下API ,A

????? 也有一段时间没有静下来写一些东西,最近比较忙碌,其他原因也是因为没有电脑的缘故,每天下班回去只能躺在床上睡觉。呵呵,今天难得有点时间,就想到写一点简单的东西。最近想到一个装备颜色过滤的东西,一直想不懂怎样过滤才好。最好查询一下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:*,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;

?

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

好,今晚就到这里了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读