文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Flex 中ArrayCollection类如何使用

2023-06-17 15:31

关注

这期内容当中小编将会给大家带来有关Flex 中ArrayCollection类如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Flex ArrayCollection详解

集合是ActionScript中功能强大的基于索引的数组组件,添加了如对内容进行排序等功能,操作数组的读取位置,创建经过排序的数组视图。集合也能通知其任意事件监听器监听其数据是否改变,以及任何数据项被添加到源数组时可执行自定义逻辑。当数据改变时可通知其监听器,这是集合的新功能,叫数据绑定,还有就是允许DataGrid和List组件对其内容进行排序和过滤。集合是使用数据驱动控件以及从数据库返回的服务器端服务的重要内容。

经常被使用的两个集合类型是Flex ArrayCollection类XMLListCollection类。ArrayCollection是Array的包装类,提供更方便的如添加和移除数据项以及能够创建游标启用要轻松地存储数组中的***读取的位置等方法。而XMLListCollection是XML对象的包装类,提供的功能有:根据索引访问数据,添加新对象以及游标等方法。XMLListCollection对于处理XML对象以及经常需要解析XML为数组时特别有用。
使用addItemAt或addItem方法插入对象到ArrayCollection,getItemIndex或contains方法用于检测数据项是否已存在于数组中,而ArrayCollection的sort属性是对ArrayCollection排序以及通过某个字段决定接收***个或***一个数据。

1.<mx:Script> 2.<![CDATA[  3.importmx.collections.SortField;  4.importmx.collections.Sort;  5.importmx.collections.ArrayCollection;  6.privatevarcoll:ArrayCollection;  7.privatefunctioninit():void{  8.coll=newArrayCollection(  9.[{name:"MartinFoo",age:25},  10.{name:"JoeBar",age:15},  11.{name:"JohnBaz",age:23}]);  12.}  13.要插入元素到指定位置,可使用addItemAt方法:  14.privatefunctionaddItem():void{  15.coll.addItemAt({name:"JamesFez",age:40},0);  16.}  17.]]> 18.</mx:Script>

Sort对象提供findItem方法用于搜索这个ArrayCollection中的所有元素。方法原型如下:

publicfunctionfindItem(items:Array,values:Object,mode:String,  returnInsertionIndex:Boolean=false,compareFunction:Function=null):int

Value参数可以是包含属性和所需值的任何对象。Mode字符串可以是Sort.ANY_INDEX_MODE,表示返回任何匹配项索引,Sort.FIRST_INDEX_MODE表示返回***个匹配项索引,Sort.LAST_INDEX_MODE表示返回***一个匹配项索引。

returnInsertionIndex参数表示如果该方法找不到由values参数标识的项目,并且此参数为true,则findItem()方法将返回这些值的插入点,也就是排序顺序中应插入此项目的。
compareFunction设置用于查找该项目的比较运算符函数.
使用Sort对象的findItem方法代替上面的方法:

1.privatefunctioncheckExistence():int{  2.varsort:Sort=newSort();  3.returnsort.findItem(coll.source,  4.{name:nameTI.text,age:Number(ageTI.text)},  5.Sort.ANY_INDEX_MODE);  6.}

首先要创建一个Sort,传递一个SortField对象数组给fields属性。这些SortField对象包含的字符串正是每个Flex ArrayCollection元素将要用来排序的属性。如要对每个对象的age属性进行排序,创建Sort对象,传递SortField,设置排序字段为age:

1.privatefunctiongetOldest():void{  2.varsort:Sort=newSort();  3.sort.fields=[newSortField("age",false)];  4.coll.sort=sort;  5.coll.refresh();  6.trace(coll.getItemAt(0).age+""+coll.getItemAt(0).name);  7.}

过滤 Flex ArrayCollection

对Flex ArrayCollection数据进行过滤,设置过滤器移除些不匹配的结果。
将原型为function(item:Object):Boolean的函数传递给ArrayCollection的filter属性。如果返回true表示值继续留在ArrayCollection,返回false表示其值被移除。

filterFunction属性是由ListCollectionView类定义,它是ArrayCollection的父类。当过滤器函数被传递给继承自ListCollectionView的任何子类后,这里为ArrayCollection对象,应用过滤器后必须调用refresh方法:

1.importmx.collections.ArrayCollection;  2.privatevarcoll:ArrayCollection;  3.privatefunctioninit():void{  4.coll=newArrayCollection([  5.{name:"MartinFoo",age:25},  6.{name:"JoeBar",age:15},  7.{name:"JohnBaz",age:23},  8.{name:"MattBaz",age:21}]);  9.coll.filterFunction=filterFunc;  10.coll.refresh();  11.for(vari:int=0;i<coll.length;i++){  12.trace(coll.getItemAt(i).name);  13.}  14.}  15.privatefunctionfilterFunc(value:Object):Object{  16.if(Number(value.age)>21){  17.returntrue;  18.}rreturnfalse;  19.}

上述就是小编为大家分享的Flex 中ArrayCollection类如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯