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 想飛就飛 閱讀(5103) 評論(0)  編輯  收藏 所屬分類: Flex

          公告


          導航

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

          統計

          常用鏈接

          留言簿(13)

          我參與的團隊

          隨筆分類(69)

          隨筆檔案(68)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 穆棱市| 阳新县| 乌鲁木齐市| 拉孜县| 油尖旺区| 海盐县| 崇明县| 保亭| 庆元县| 五家渠市| 青龙| 汨罗市| 兴海县| 保德县| 临海市| 滨州市| 中山市| 吉木萨尔县| 海城市| 黄陵县| 新河县| 东乡| 墨竹工卡县| 渑池县| 开原市| 洛浦县| 类乌齐县| 商南县| 益阳市| 手游| 铜川市| 鞍山市| 蕲春县| 盐山县| 邓州市| 丽江市| 吉林市| 兴国县| 江津市| 芮城县| 宁城县|