Flex XML转ArrayCollection的问题

本文详细解析了使用ArrayCollection()强制转换FlexXML至ArrayCollection时遇到的问题,包括使用newArrayCollection()导致的错误及解决方法。文章还讨论了通过HTTPService获取XML数据时,数据结构变化对ArrayCollection创建的影响。
Flex XML转ArrayCollection的问题
2010-03-24 10:02:38
直接用ArrayCollection()强制转换,不要用new ArrayCollection()。用new ArrayCollection()会出错,出错信息: 强制转换类型失败:无法将 mx.collections::ArrayCollection@5d89481 转换为 Array。

另外,如果通过HTTPService获取到的XML中只有一条数据,例如:
<tips>
<tip>
<no>16</no>
<date>2010/03/19</date>
<content>内容</content>
</tip>
</tips>
就不能使用var myData:ArrayCollection = ArrayCollection(event.result.tips.tip)
这种方法创建ArrayCollection
要这样:
var data:Array = new Array({no:event.result.tips.tip.no,date:event.result.tips.tip.date, content:event.result.tips.tip.content});
myData = new ArrayCollection(data);


通过调试,可以看到如果返回的是多条记录,event.result.tips.tip是ArrayConlection类型的,
而如果只有一条记录,就是ObjectProxy类型的。见图:





参看ArrayConlection的构造函数:
public function ArrayCollection(source:Array = null)
其参数是Array类型的,所以,只有一条记录的时候当然会出错了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值