Flex動態獲取Object的屬性和值以及完成Object之間value的拷貝

          1.如何動態獲取Object中的屬性和值
          var ct:CustomObject=newCustomObject(); 
          var xml:XML = describeType(ct);
          for each(var accessor in xml..accessor){
            
          var name:String= accessor.@name;
            
          var type:String= accessor.@type;
            trace(ct[name]);
          }

          2. 對象之間的拷貝
          /**
           * copies a source object to a destination object
           * @param sourceObject the source object
           * @param destinationObject the destination object
           *
           
          */
          public static 
          function copyObject(sourceObject:Object, destinationObject:Object):void
          {
              
          // check if the objects are not null
              if((sourceObject) && (destinationObject)) {
                  
          try
                  {
                      
          //retrive information about the source object via XML
                      var sourceInfo:XML = describeType(sourceObject);
                      
          var objectProperty:XML;
                      
          var propertyName:String;

                      
          // loop through the properties
                      for each(objectProperty in sourceInfo.variable)
                      {
                          propertyName 
          = objectProperty.@name;
                          
          if(sourceObject[objectProperty.@name] != null)
                          {
                              
          if(destinationObject.hasOwnProperty(objectProperty.@name)) {
                                  destinationObject[objectProperty.@name] 
          = sourceObject[objectProperty.@name];
                              }
                          }
                      }
                      
          //loop through the accessors
                      for each(objectProperty in sourceInfo.accessor) {
                          
          if(objectProperty.@access == "readwrite") {
                              propertyName 
          = objectProperty.@name;
                              
          if(sourceObject[objectProperty.@name] != null)
                              {
                                  
          if(destinationObject.hasOwnProperty(objectProperty.@name)) {
                                      destinationObject[objectProperty.@name] 
          = sourceObject[objectProperty.@name];
                                  }
                              }
                          }
                      }
                  }
                  
          catch (err:*) {
                      ;
                  }
              }



          posted on 2010-08-25 13:55 想飛就飛 閱讀(5101) 評論(0)  編輯  收藏 所屬分類: Flex

          公告


          導航

          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          統計

          常用鏈接

          留言簿(13)

          我參與的團隊

          隨筆分類(69)

          隨筆檔案(68)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 张家界市| 白沙| 湘潭县| 龙里县| 日照市| 灵武市| 锡林郭勒盟| 平山县| 濉溪县| 光泽县| 新郑市| 保定市| 连山| 独山县| 浦城县| 南木林县| 岳阳市| 新闻| 庆云县| 大新县| 循化| 天气| 灵山县| 察哈| 板桥市| 孟州市| 泰和县| 高唐县| 炎陵县| 古蔺县| 合江县| 鹤峰县| 郧西县| 光泽县| 吴江市| 棋牌| 陇川县| 望城县| 太仆寺旗| 尼勒克县| 兴海县|