从两个blog中获取的信息
//////信息1 start
当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。
例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。
而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。
例如:myArrayCollection.addItem("new item"); 这时,如果一个控件List用它作为dataProvider,List列表中会增加一列内容.
///////信息1 end
///////信息2 start
今天看到这么一篇帖子,但是我对他的正确性表示怀疑。
因为,我就是用Array做的dataProvider,效果是可以得到更新的。
Array和ArrayConllection做dataProvider,做VO,各有优缺点,相比之下
我还是选择了Array。
因为
1)取数组下标的应用要比让数组扩展的应用更多
2)后台JavaBean也用的是数组[]
3)for循环数组似乎比for each ArrayConllection看起来更“傻瓜化”
4)给Array数组扩展长度,也可以变通实现,而且代价并不大
今后如果有更进一步研究,再来贴。
转帖部分如下:
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>
///////信息2 end
分享到:
相关推荐
Flex的Array和ArrayCollection
在IT行业中,ArrayCollection是ActionScript 3.0和Flex框架中的一个重要数据结构,它扩展了Array类,提供了对数据的双向绑定和事件通知功能。ArrayCollection不仅支持数组的操作,还具备列表的数据管理特性,因此在...
在Flex编程中,ArrayCollection是一种常用的集合类,它继承自Array类并添加了对数据绑定的支持。然而,尽管ArrayCollection通常被用作数据绑定的主要工具,但在特定情况下,可能会遇到“ArrayCollection不完全绑定”...
ArrayCollection是基于Array的,但提供了对数据的更高级别的访问,如排序和过滤功能。在某些情况下,我们需要将ArrayCollection转换为XML格式,以便于数据交换或存储。本实例将详细介绍如何实现这一转换。 首先,...
同时,对于Array和Object数据源,你可能需要创建一个自定义的类来封装数据,以便在创建ArrayCollection时使用。 此外,Tree组件还支持数据提供者的变化监听,这样当数据改变时,Tree会自动更新。你可以通过添加`...
`ArrayCollection`不直接接受Java对象,而是需要一个数组(`Array`)或者实现了`IList`接口的对象。这是因为Flex和Java运行在不同的环境中,它们的数据类型不完全兼容。 在描述中提到的问题是,当我们从Java方法...
在Flex开发中,ArrayCollection是一种常用的集合类,它继承自Array并添加了对数据绑定和事件处理的支持。然而,当ArrayCollection应用了过滤器后,直接使用`removeItemAt()`方法尝试删除过滤后的数据可能会遇到问题...
ArrayCollection是Flex框架中的一个类,它是Array的包装器,提供了数据绑定和事件处理功能。在这个主题中,我们可能会探讨如何对ArrayCollection中的元素进行排序。 在Flex或ActionScript开发中,ArrayCollection是...
as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持....var datasource:ArrayCollection = new ArrayCollection(sheet); //可转换为ArrayCollection,用于表格控件grid绑定数据显示出来
ArrayCollection是一种常用的集合类,它基于Array,并提供了数据绑定功能,适用于用户界面的数据展示。本篇文章将详细介绍两种将XML转换为ArrayCollection的方法。 ### 方法一:手动映射XML属性到Object 第一种...
as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持....var datasource:ArrayCollection = new ArrayCollection(sheet); //可转换为ArrayCollection,用于表格控件grid绑定数据显示出来
在我们的例子中,可能的数据源可以是XML、Array或ArrayCollection。 下面是一段简单的Flex代码,展示了如何创建一个基本的List控件: ```actionscript <![CDATA[ import mx.collections.ArrayCollection; ...
这是因为`Array`不支持数据变更的监听,而`ArrayList`和`ArrayCollection`提供了这种功能。Adobe在Spark组件中做出这样的改变,是为了提高数据绑定的稳定性和一致性。在MX组件中,`ComboBox`和`DropDownList`的`data...
首先,我们需要了解AS3中的数据结构,如Array和Vector,它们可以用来存储列表数据。Array是最基本的数据结构,而Vector则提供了类型安全和更好的性能。当我们有大量数据时,通常会使用ArrayCollection,它扩展了...
- **Array 和 ArrayCollection**:Array 是基本的数组类型,ArrayCollection 是它的动态版本,支持数据绑定。 9. **HTTP 请求**: - **HttpService**:用于向远程服务器发送 HTTP 请求,通过 `url` 指定请求地址...
dataGrid.dataProvider = new ArrayCollection(arrayData); ``` **HTTP服务与报表** HttpService 类用于向远程服务器发送请求。通过设置url和result属性,指定请求地址和返回结果处理方法,然后调用`Send()`方法...
书里会讲解如何使用XML、JSON等格式进行数据交换,以及如何使用Array、ArrayCollection等数据结构进行数据操作和排序。 4. 事件处理:ActionScript 3.0的事件模型是其强大功能的一部分。通过学习事件监听、触发和...
在Flex中,数据源可以是Array、ArrayCollection或XMLListCollection等。这些数据结构可以动态更新,从而实现图表的动态更新,这正是“DynamicUpdate”这个文件名所暗示的。 动态更新数据源的步骤通常包括: 1. ...
DataGrid可以与各种数据源绑定,包括Array、ArrayCollection、XMLList等,也可以通过数据提供者机制连接到更复杂的后端服务。 二、DataGrid的基本使用 创建一个基本的DataGrid涉及以下几个步骤: 1. 导入必要的库:...
是`Array`,则转换为`ArrayCollection`;是`XML`或`XMLList`,则转换为`XMLListCollection`;在其他情况下,转换为单元素的`ArrayCollection`。这些转换是基于`ICollectionView`、`IList`和`ArrayCollection`等接口...