flex RESULT_FORMAT_E4X对象转化为ArrayCollection

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

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

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

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

 

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

 

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Button label="Button" click="g();"/>

    <mx:DataGrid id="dg" width="100%" height="100%">
        <mx:columns>
        <mx:DataGridColumn dataField="a"/>
        <mx:DataGridColumn dataField="b"/>
        <mx:DataGridColumn dataField="c"/>
        </mx:columns>
    </mx:DataGrid>
    <mx:Script>
        <![CDATA[
            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="http://localhost:8081/test.php?" + 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;
            }
        ]]>
    </mx:Script>
</mx:Application>

posted on   朋友圈自动点赞工具  阅读(929)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示