flex RESULT_FORMAT_E4X对象转化为ArrayCollection

刚接触flex. 在用HTTPService获取XML格式数据再绑定给DataGrid时.遇到一个很"奇怪"的问题

就是当xml的条目小于等于1时,就会出错. 很是郁闷了一段时间

后来才发现. 问题即不是出在HTTPService上,也不是出在DataGrid上. 而是出在 RESULT_FORMAT_E4X 型数据类型转化为ArrayCollection上

原来 event.result  返回的是object.  当一条记录时,赋给集合,那肯定是有问题
如果返回多于1条, 就会认为是集合.  再赋出ArrayCollection或绑定DataGrid就没问题了
所以返回的object 一定要转化.

 

以下的代码就不会出错了.

 


   

   
       
       
       
       
       
   
   
                    import mx.collections.ArrayCollection;
            import mx.rpc.events.ResultEvent;
            import mx.rpc.http.HTTPService;
            [Bindable]
            private var xmls:ArrayCollection=new ArrayCollection();
            private var hs:HTTPService=new HTTPService();
            private function g():void
            {
                hs.url=" + Math.random().toString();
                hs.resultFormat=HTTPService.RESULT_FORMAT_E4X;
                hs.addEventListener(ResultEvent.RESULT, r);
                hs.send();
            }
            private function r(event:ResultEvent):void
            {
                var xml:XML=event.result as XML;
                for each (var xm:XML in xml.item)
                {
                    xmls.addItem(xm);
                }
                dg.dataProvider=xmls;
            }
        ]]>
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾思软件-app开发公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值