flex数据基础 array和arraycollection

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 立即下载

相关推荐

vue项目基于WebRTC实现一对一音视频通话

vue项目基于WebRTC实现一对一音视频通话。完整代码gitee地址: https://gitee.com/wade-nian/wdn-webrtc.git。

qq_920189602的博客 6648

Flex Array 与 ArrayCollection.转自网络

1.array作为控件使用 FLEX3写法: <mx:Array id="barname"> <mx:String>Flash</mx:String> <mx:String>Director</mx:String> <mx:String>D...

weixin_30954607的博客 143

VMware Ubuntu虚拟机突然断网?我用5步彻底解决了(附避坑指南)

Ubuntu虚拟机断网问题通常由网络配置冲突和VMware服务未正确绑定导致。本文提供5步解决方案:1)清理Ubuntu重复有线连接;2)重启Windows主机的VMware服务;3)检查VMware虚拟网络配置;4)重新配置Ubuntu网络参数;5)测试网络连通性。关键避坑点包括:避免多连接共存、修改配置后必重启服务、确保虚拟网卡绑定主机。通过"网卡状态→IP/路由→网关→服务"的排查思路,可快速解决虚拟机网络故障。文末附有详细的故障症状对照表,便于快速定位问题。

m0_58530495的博客 626

Flex ArrayCollection类用法详解

本文和大家重点学习一下Flex ArrayCollection的概念,经常被使用的两个集合类型是ArrayCollection类XMLListCollection类。ArrayCollection是Array的包装类,提供更方便的如添加和移除数据项以及能够创建游标启用要轻松地存储数组中的最后读取的位置等方法。Flex ArrayCollection详解集合是ActionScript中功能强

xiaoniba1024的专栏 2万+

实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比

本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。

weixin_33704234的博客 391

别再用默认参数了!手把手教你用2P2Z补偿网络优化Buck电源的动态性能

本文详细介绍了如何通过2P2Z补偿网络优化Buck电源的动态性能,解决默认参数下的负载阶跃响应问题。从频域分析到元件选型,再到实测验证,手把手教你提升相位裕度,显著降低超调量和稳定时间,适用于DCDC和开关电源设计。

weixin_33657398的博客 256

Flex理解ArrayCollection类及其绑定,筛选、排序、游标用法

理解ArrayCollection类 上一节,我们介绍了集合类提供了丰富的数据操纵能力,本节,我们将 通过ArrayCollection类来具体了解如何应用集合类。 13.5.1 创建ArrayCollection类实例 mx.collection.ArrayCollection类是 将Array公开为集合的封装类,可使用ICollectionView或IList接口的方法和属性...

aiqixiao2017的博客 258

Orange3实战教程:文本挖掘---主题建模

主题建模通过LDA、LSI或HDP算法分析文档集合,自动发现隐含主题结构。组件输入为文档语料库,输出包括带主题权重的语料库、主题词分布及完整主题数据。不同算法特性各异:LSI允许正负权重但解释性较弱,LDA更易解释,HDP参数复杂需谨慎设置。结果可结合词云、热力图等可视化工具分析主题特征及分布。示例显示如何通过预处理文本、选择算法(如提取5个LDA主题),并利用MDS和箱线图探索主题间关系及关键词分布。

err2008的专栏 362

Flex中的Array和ArrayCollection

当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。  例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。  而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。  例如:myArrayCollection.addItem("new it

jhjbjbn的专栏 678

软件测试高频面试题 2026 最新整理(功能 + 自动化)

本文系统整理了2026年软件测试面试高频题目及参考答案,涵盖功能测试、自动化测试及新兴热点领域。功能测试部分包含测试基础概念、用例设计方法、缺陷管理流程等10个必背题;自动化测试部分详细解析工具选择、元素定位、框架搭建等10个热门考点;新增章节聚焦AI测试、安全测试、性能指标等5个前沿话题。参考答案均采用结构化表述,包含定义、区别、适用场景等关键要素,并强调结合项目经验作答。文末提供2026版面试技巧,建议采用"结论-分点-总结"的回答逻辑,重点展现问题解决能力和技术前瞻性。

SmallBull的博客 1968

RV1126 ISP调参实战:3A算法参数调节的7个技巧

││ │ DEMOSAIC (去马赛克) │ ││ │ GAMMA (Gamma 校正) │ ││ │ DPC (坏点校正) │ ││。

小灰灰的博客 659

Flex的 array 和 arraycollection

1.array作为控件使用   FLEX3写法:   &lt;mx:Array id="barname"&gt;   &lt;mx:String&gt;Flash&lt;/mx:String&gt;   &lt;mx:String&gt;Director&lt;/mx:String&gt;   &lt;mx:String&gt;Dreamweaver&amp

Ferrerooo 成长 197

基于STM32L4XX、HAL库的E180-ZG120B ZigBee模块驱动程序设计

/ 频率: 470MHz, SF7, BW125kHz, CR4/5, 功率14dBm。// 检查是否收到完整响应(根据实际情况调整)// 每5秒发送一次。PB0 <---> AUX (可选,用于状态检测)// 实际发送命令可能需要根据模块AT指令集调整。PC13 <---> RESET (可选)// 处理接收到的数据。// 缓冲区满,从头开始。// 其他必要的HAL库初始化代码...// 初始化E180模块。// 启动UART接收。// 如果需要等待响应。// 配置LoRa参数。

zhusl6688的博客 380

FLEX Array和ArrayCollection的区别

<br />当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。 <br />例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。 <br /><br /><br />而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。 <br />例如:myArrayCollection.addItem("new item"); 这时,如果一个控件List用它作为dataP

lu_cy的专栏 619

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

转:Flex的Array和ArrayCollection

1.array作为控件使用FLEX3写法:<mx:Array id="barname"> <mx:String>Flash</mx:String> <mx:String>Director</mx:String> <mx:String>Dreamweaver</mx:String> <mx:Strin...

diejiankuai3444的博客 202

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Flex Array,Arraylist,ArrayCollection使用详解

Flex Array,Arraylist,ArrayCollection使用详解 1.1.1 Array的申明 //申明arraylist的四种方式 var arr1:Array=new Array("小强","小红","小刚"); var arr2:Array=['小强','小红','小刚']; var aar3:Array=new Array( {name:"...

andyny JavaEye社区 344

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Array 和 ArrayCollection 区别

Flash 中没有ArrayCollectionArrayCollection实现接口ICollectionView,在Flex的类定义内属于[数据集],他提供更强大的检索、过滤、排序、分类、更新监控等功能。FDK2提供的类似的类还有XMLListCollection这两者差别在于如果用array在作为data provider绑定于control之上,就无法获得控件的更新,除非控件被重新

李浩荣的专栏 982

flex中Array和ArrayCollection简介

1、 Array和 ArrayCollection的区别(下面转载自:天梯梦)        ArrayCollection实现接口ICollectionView,在Flex的类定义内属于[数据集],他提供更强大的检索、过滤、排序、分类、更新监控等功能。FDK2提供的类似的类还有XMLListCollection        这两者差别在于如果将array绑定到control组件为data...

tydldd 160

Flex Array和ArrayCollection的区别

<br />当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。<br />例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。<br />而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。<br />例如:myArrayCollection.addItem("new item"); 这时,如果一个控件List用它作为dataProvider,List列表中

ystyaoshengting的专栏 1674

Array与ArrayCollection的区别

当Array的数据发生变化的时候,用它作为数据源的控件不能感知这种变化。 例如:myArray.push("new value"); 这时,如果一个List用它作为dataProvider,List的列表中不会增加新加入的这个值。 而当ArrayCollection的数据发生变化的时候,能够通知控件发生变化。 例如:myArrayCollection.addItem("new

俊哥 519
上一篇: Flex Tree和其他控件的联动
下一篇: flex object 联合数组
yangactive
博客等级 码龄15年 15粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值