在AS3里面,数组里面可以存储字符串、数字、布尔值、或引用的类型。同一个数组可以引用不同的类型。
这里主要是讲下Aarry和AarryCollection作为数据提供者时的用法,在用到ComBoBox、List、DataGrid时,会引入数据提供者,顾名思义,就是给这些控件提供数据
举一个比较简单的例子
- var ls:List = new List();
- var arr:Array = new Array("1","2","3")
- ls.dataProvider = arr;
但是在很多情况下,Aarry里面如果是简单的字符串类型时,往往无法满足给比较复杂的控件提供数据的需求,这时候,可以在数组中存入object类型或者class来满足需求,
用法大致如下
- var arr:AarryCollection= new AarryCollection([{name:"张三",ID:"1"},{name:"李四",ID:"2"}]);
当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。
ArrayCollection实现接口ICollectionView,在Flex的类定义内属于[数据集],他提供更强大的检索、过滤、排序、分类、更新监控等功能。FDK2提供的类似的类还有 XMLListCollection 这两者差别在于如果用array在作为data provider绑定于control之上,就无法获得控件的更新,除非控件被重新绘制或者data provider被重新指定,而Collection则是将array的副本存储于Collection类的某个对象之中,其特点是Collection 类本身就具备了确保数据同步的方法,例子如下(取自adobe内部 工程师training示例,稍有改变)(关于Aarry和AarryCollection的区别转自 http://ariyue.iteye.com/blog/413326)