`
thinlong
  • 浏览: 32624 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

FLEX Array和ArrayCollection的区别

    博客分类:
  • Flex
阅读更多
当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。
例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。


而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。
例如:myArrayCollection.addItem("new item"); 这时,如果一个控件List用它作为dataProvider,List列表中会增加一列内容。

=================================================================
ArrayCollection实现接口ICollectionView,在Flex的类定义内属于[数据集],他提供更强大的检索、过滤、排序、分类、更新监控等功能。FDK2提供的类似的类还有XMLListCollection

这两者差别在于如果用array在作为data provider绑定于control之上,就无法获得控件的更新,除非控件被重新绘制或者data provider被重新指定,而Collection则是将array的副本存储于Collection类的某个对象之中,其特点是Collection 类本身就具备了确保数据同步的方法,例子如下(取自adobe内部工程师training示例,稍有改变)

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 
      <mx:Script> 
          <![CDATA[ 
              import mx.collections.ArrayCollection; 
              [Bindable] 
              public var myArray:Array=["北京","上海","深圳"]; 
              [Bindable] 
              public var myCollection:ArrayCollection=new ArrayCollection(myArray); 
              public function addCountryToArray(country:String):void{ 
                  myArray.push(country); 
              } 
              public function addCountryToCollection(country:String):void{ 
                  myCollection.addItem(country); 
              } 
          ]]> 
      </mx:Script> 
      <mx:TextInput id="countryTextInput" text="广州"/> 
      <mx:Label text="Bound to Array (Raw Object)"/> 
      <mx:Button click="addCountryToArray(countryTextInput.text)" label="Add Country to Array"/> 
      <mx:List dataProvider="{myArray}" width="200"/> 
      <mx:Label text="Bound to Collection"/> 
      <mx:Button click="addCountryToCollection(countryTextInput.text)" label="Add Country to Collection"/> 
      <mx:List dataProvider="{myCollection}" width="200"/> 
</mx:Application> 
分享到:
评论

相关推荐

    Flex的Array和ArrayCollection

    Flex的Array和ArrayCollection

    Flex:ArrayCollection转xml形式的实例

    ArrayCollection是基于Array的,但提供了对数据的更高级别的访问,如排序和过滤功能。在某些情况下,我们需要将ArrayCollection转换为XML格式,以便于数据交换或存储。本实例将详细介绍如何实现这一转换。 首先,...

    ArrayCollection求最大值,最小值,排序

    在IT行业中,ArrayCollection是ActionScript 3.0和Flex框架中的一个重要数据结构,它扩展了Array类,提供了对数据的双向绑定和事件通知功能。ArrayCollection不仅支持数组的操作,还具备列表的数据管理特性,因此在...

    Flex中Tree组件的数据源举例(xml,array,object)

    本篇将详细介绍如何为Flex中的Tree组件设置不同的数据源,包括XML、Array和Object。 首先,让我们从XML数据源开始。XML因其结构化的特性,非常适合用来表示层次数据。在Flex中,我们可以使用mx.collections....

    ArrayCollection不完全绑定

    在Flex编程中,ArrayCollection是一种常用的集合类,它继承自Array类并添加了对数据绑定的支持。然而,尽管ArrayCollection通常被用作数据绑定的主要工具,但在特定情况下,可能会遇到“ArrayCollection不完全绑定”...

    flex实现数据表格。

    1. **数据绑定**:Datagrid可以直接与数据提供者进行绑定,数据提供者可以是Array、ArrayCollection或其他支持ICollectionView接口的数据源。这意味着你可以动态地更新数据源,Datagrid会自动反映这些更改。 2. **...

    flex 经典教程下载

    Flex 是一种用于构建富互联网应用程序(RIA)的框架,它主要基于Adobe的ActionScript编程语言和MXML标记语言。在本教程中,我们将深入探讨Flex的基础知识,包括设计视图和源视图的使用,以及如何创建动态效果、处理...

    Sample-Flex4-TabBar

    2. dataProvider:提供选项卡数据的集合,可以是Array、ArrayCollection或其他数据源。 3. allowMultipleSelection:控制是否允许多个TabItem同时被选中。 4. tabFactory:用于创建自定义TabItem实例的函数,实现...

    Flex类图和与Java交互时类型转换对照.rar

    Flex是Adobe开发的一种开源框架,主要用于构建富互联网应用程序(RIA),它基于ActionScript和MXML。在Flex应用程序中,我们通常使用AMF(Action Message Format)作为数据交换格式,这使得Flex可以与后端服务器(如...

    Flex类图和与Java交互时类型转换对照

    - `Array`:Flex中的数组对应Java的`ArrayList`或`Array`,但在AMF中,它会被序列化为`java.util.ArrayList`。 - `Object`:在AS3中,动态对象可以映射到Java的`Map`或自定义类,具体取决于字段结构。 3. **日期...

    flex Chart

    1. **数据绑定**:Flex Chart组件的数据源可以是XML、Array、ArrayCollection或其他可迭代对象,通过数据绑定机制将数据映射到图表上。 2. **Chart类型**:除了柱状图,Flex Chart还包括线性图(LineChart)、饼图...

    FLEX ArrayCollection删除过滤的数据问题解决

    在Flex开发中,ArrayCollection是一种常用的集合类,它继承自Array并添加了对数据绑定和事件处理的支持。然而,当ArrayCollection应用了过滤器后,直接使用`removeItemAt()`方法尝试删除过滤后的数据可能会遇到问题...

    看完Flex就可以做出一个小游戏

    - **Array 和 ArrayCollection**:Array 是基本的数组类型,ArrayCollection 是它的动态版本,支持数据绑定。 9. **HTTP 请求**: - **HttpService**:用于向远程服务器发送 HTTP 请求,通过 `url` 指定请求地址...

    flex android开发学习好实例

    在我们的例子中,可能的数据源可以是XML、Array或ArrayCollection。 下面是一段简单的Flex代码,展示了如何创建一个基本的List控件: ```actionscript &lt;![CDATA[ import mx.collections.ArrayCollection; ...

    flex导入excel2007版本以上并支持日期格式的类库Rxlsx

    //fr.data为flex加载excel的byte数组 var sheet:Array = excel.getSheetArray();//得到表格数据,为Array格式 var datasource:ArrayCollection = new ArrayCollection(sheet); //可转换为ArrayCollection,用于表格...

    FLEX的datagrid合计、平均值

    在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...

    Adobe Flex 编码规范

    - 使用ArrayCollection而非Array,因为ArrayCollection提供了更高效的遍历和绑定支持。 - 对于大量数据,考虑使用数据虚拟化技术,只加载可视区域的数据。 10. **版本控制**: - 使用版本控制系统(如Git)进行...

    flex 分页学习例子

    1. **数据集(Data Provider)**:分页的基础是数据集,它可以是Array、ArrayCollection或其他支持数据绑定的数据源。数据集应包含所有要显示的数据,并负责管理分页逻辑。 2. **Pagination组件**:Flex并没有内置...

    flex------组件-----数据可视化

    可以使用Array、XML、ArrayCollection或任何实现了IList接口的对象作为数据源。通过设置数据提供者,图表会自动更新以反映数据的变化。 3. **States和Effects**:Flex支持状态管理,允许你在不同场景下改变图表的...

    FLEX datagrid应用实例

    DataGrid可以与各种数据源绑定,包括Array、ArrayCollection、XMLList等,也可以通过数据提供者机制连接到更复杂的后端服务。 二、DataGrid的基本使用 创建一个基本的DataGrid涉及以下几个步骤: 1. 导入必要的库:...

Global site tag (gtag.js) - Google Analytics