FLEX在DataGrid中使用net传回来的DataTable数据 - [Flex - AS3]

FLEX在DataGrid中使用net传回来的DataTable数据 - [Flex - AS3]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://andychen0208.blogbus.com/logs/45943891.html

      好久没更新BLOG了.
      最近在重构游戏引擎,服务端编写还是需要多考虑的,前期的很多处理方式因为时间关系存在一些问题. 所以客户端这块就分发给其他程序员同事了.
      但他们在处理的时候碰到比较多的问题,解决得还不到位,有些问题拖的时间也比较久.
      这里说下刚针对排行问题的处理:
      问题是这样的:游戏中要实现排行,为了处理的方便,服务器端传回来排行数据是以dataTable格式存储的.现在需要在FLEX中的DataGrid中显示出来.上个周给了他们提示,需要做转换,但他们一直没转换成功,也没找到方法,更没学会跟踪和分析,郁闷啊.
      废话不说了,通过跟踪与分析,发现NET传回来的DATATABLE经过FLEX处理后,字段和数据分开存放了.
分别存放在:serverInfo.columnNames和serverInfo.initialData中, 而FLEX DATAGRID的读取的数据格式,其中一种是相当于键值形式的.找到这个出口后,直接在FLEX中把数据转换成想要的数据格式就好了.
 <code>
     //=====================================================
     // dotNet中传递回来的dataTable转换成 Flex中DataGride 能绑定的Array
     // 本方法,是针对目前的排行做的处理
     // 
     // 字段中的 "sort" 表示排序序号,由Flex端生成
     // 
     //e.g.
     // <code>
     //   var obj = notification.getBody();
     //   var data:ArrayCollection = new ArrayCollection(Common.dataTabelToArray(obj));
     //   mainScreen.dataShow.myGrid.dataProvider=data;
     //</code>
     // parames @data NET中传过来的DataTable数据
    //=====================================================

  public static function dataTabelToArray(data:Object):Array
  {
            if (data==null ) return null;
            var returnArr:Array=[];
             
            var columnsArr:Array   = data.serverInfo.columnNames; //字段
            var dataArr:Array        = data.serverInfo.initialData; //数据
            
            var obj:Object;
            var sort:int = 0;
            for each (var _rowData:Object in dataArr)
            {
                sort ++ ;
                obj =new Object();
                for (var i:* in columnsArr)
               {
                    obj["sort"] =  sort;
                    obj[columnsArr[i]] = _rowData[i];
                }
                returnArr.push(obj);
            }
            
            data           = null;
            columnsArr = null;
            dataArr      = null;
            
            return returnArr;
        }
</code>

posted on 2010-12-07 14:05 aiaiwoo 阅读(879) 评论(0)  编辑  收藏 所属分类: AC3/FLEX


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜