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 閱讀(884) 評論(0)  編輯  收藏 所屬分類: AC3/FLEX

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 广灵县| 崇仁县| 泰安市| 藁城市| 罗甸县| 蓝山县| 林甸县| 张掖市| 康定县| 秦安县| 平谷区| 正定县| 静乐县| 武强县| 高邮市| 崇礼县| 阿拉善左旗| 夏津县| 浮梁县| 铜陵市| 新晃| 贵南县| 墨江| 中方县| 苏尼特右旗| 阜平县| 米易县| 新建县| 清水县| 绩溪县| 垫江县| 嘉定区| 洪雅县| 顺平县| 日照市| 年辖:市辖区| 溆浦县| 思茅市| 丰原市| 闻喜县| 十堰市|