`

flex数据基础 array和arraycollection

    博客分类:
  • flex
阅读更多

Flex数据基础-Array与ArrayCollection
2010-12-16 12:34

通常Flex与外部数据传递时采用XML/XMLList的方式,而内部数据传输大多采用Array或ArrayCollection的方式。

常用的Array类型通常是:一维数组、二维数组和联合数组等。

ArrayCollection是对Array的包装。包装之后,数据会具有更丰富的数据处理能里。我转的教程说的挺详细,可以看看。

通常的做法是先定义Array,然后将其包装成ArrayCollection。

一、定义Array

1、用AS定义

var arr:Array = new Array("宝马","奔驰","奥迪","面包");

var arr2:Array = ["宝马","奔驰","奥迪","面包"];

var arr3:Array = new Array(

{name:"宝马",type:"汽车"},

{name:"奔驰",type:"汽车"},

{name:"奥迪",type:"汽车"},

{name:"面包",type:"食物"}

);

2、用标签定义

<mx:Array id="arr">

<mx:String>宝马</mx:String>

<mx:String>奔驰</mx:String>

<mx:String>奥迪</mx:String>

<mx:String>面包</mx:String>

</mx:Array>

2、定义ArrayCollection

现定义Array再包装

var arr:Array = new Array(

 

{name:"宝马",type:"汽车"},

{name:"奔驰",type:"汽车"},

{name:"奥迪",type:"汽车"},

{name:"面包",type:"食物"}

 

);

var arrc:ArrayCollection = new ArrayCollection(arr);

或者直接定义:

var arrc:ArrayCollection = new ArrayCollection([

 

{name:"宝马",type:"汽车"},

{name:"奔驰",type:"汽车"},

{name:"奥迪",type:"汽车"},

{name:"面包",type:"食物"}

3、添加/移除ArrayCollection项

1)添加项  ac.addItemAt({name:"奔驰",type:"汽车"},0);  注意是两个参数,不然会报错

 

2)移除项  ac.removeItemAt(0);  注意索引值如果大于ac中的项目,后面的语句不会执行。

3)同时移除多项 

var toRemove:Array = [];

for(var i:int=0; i<tlist0.selectedItems.length;i++)

toRemove.push(tlist0.selectedItems[i]);

for(i=0;i<toRemove.length;i++)

myDP.removeItemAt(myDP.getItemIndex(toRemove[i]));

4)检测ArrayCollecction是否存在某对象

要检查ArrayCollection中是否存在复杂对象,需要比较两个对象的值,例如:

private function checkItem():int

{

var i:int;

var arr:Array = AC.source;

while()

{

if(arr[i].name==nameTI.text && arr[i].age==ageTI.text)

{

return i;

}

i++;

}

return -1;

}

不能用

AC.contains({name:nameTI.text,age:Number(ageTI.text)})

AC.getItemIndex({name:nameTI.text,age:Number(ageTI.text)})

因为contains和getItemIndex方法都是比较对象的指针,而不是他们的值。

这里要解释下:

private var arr:Array= new Array(

{name:"奔驰",type:"汽车"},

{name:"宝马",type:"汽车"},

{name:"大象",type:"动物"},

{name:"小高",type:"同学"}

);

private var ac:ArrayCollection = new ArrayCollection(arr);

protected function chk():void

{

label1.text = ac.contains({name:"小高",type:"同学"}).toString();

}

这里显示的是false;为什么?上面也说了,因为contains和getItemIndex都是比较对象的指针,而不是值,再来举个例子:

private var obj:Object = {name:“打印机”,type:"办公电器"};

private var arr:Array = new Array(

{name:"奔驰",type:"汽车"},

{name:"宝马",type:"汽车"},

{name:"大象",type:"动物"},

{name:"小高",type:"同学"},

obj

);

 

protected function chk():void

{

label1.text = ac.contains(obj).toString();

}

这里就会显示true了,也就是说虽然内容一样,但是在内存中的位置不同,那比较出来的就是false

5)监听ArrayCollection数据是否被修改

private var coll:ArrayCollection = new ArrayCollection();

coll.addEventListener(CollectionEvent.COLLECTION_CHANGE,collChangeHandler);

6)遍历ArrayCollection数据

for(var i:int=0; i<ac.length;i++)

{

trace(ac.getItemAt(i).name);

}

分享到:
评论

相关推荐

    Flex的Array和ArrayCollection

    Flex的Array和ArrayCollection

    Flex:ArrayCollection转xml形式的实例

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

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

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

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

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

    ArrayCollection不完全绑定

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

    flex实现数据表格。

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

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

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

    flex操作数据的实例

    ArrayCollection是基于Array的,但提供了数据绑定所需的额外功能,如事件触发和排序过滤。 4. **数据服务**:Flex可以与各种数据服务进行通信,如AMF(Action Message Format)服务、Web服务(SOAP或RESTful)、...

    flex图表展示数据源码

    在Flex中,数据源可以是Array、ArrayCollection或XMLListCollection等。这些数据结构可以动态更新,从而实现图表的动态更新,这正是“DynamicUpdate”这个文件名所暗示的。 动态更新数据源的步骤通常包括: 1. ...

    flex基础的ppt

    - **复杂数据类型**:包括 Array、ArrayCollection 和 Object 等。 - **数据类型转换**:可以通过隐式或显式的转换方式进行类型转换。 - **运算符**:主要包括算术运算符(如 +、-、*、/)、关系运算符(如 &gt;、&lt;、...

    flex数据绑定

    Flex数据绑定是Adobe Flex应用程序开发中的核心特性,它允许开发者将UI组件的属性与应用程序的数据模型进行连接,实现数据的动态更新和可视化。在Flex中,数据绑定是一种声明性编程方式,极大地简化了用户界面与业务...

    flex 经典教程下载

    在本教程中,我们将深入探讨Flex的基础知识,包括设计视图和源视图的使用,以及如何创建动态效果、处理事件和进行数据交互。 **设计视图与源视图** Flex 提供了两种工作方式:Design 视图和 Source 视图。Design ...

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

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

    FLEX datagrid应用实例

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

    flex Chart

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

    Flex+BlazeDB+mysql实现数据交互

    在这个体系结构中,Flex作为客户端,使用BlazeDS作为中间层,处理与服务器之间的数据交换,而MySQL作为数据库存储和管理数据。 **Flex数据交互**: Flex是一款强大的开发工具,用于创建互动丰富的基于Flash的用户...

    Sample-Flex4-TabBar

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

    flex 分页学习例子

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

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

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

    FLEX的datagrid合计、平均值

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

Global site tag (gtag.js) - Google Analytics