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)

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 沁源县| 磐石市| 余干县| 夹江县| 南川市| 徐汇区| 宜宾市| 沭阳县| 武冈市| 冕宁县| 长宁县| 乌拉特前旗| 迁安市| 宣化县| 顺平县| 聂荣县| 昭平县| 渝北区| 松阳县| 石家庄市| 略阳县| 仁寿县| 新余市| 察哈| 诸城市| 台北县| 临沂市| 双柏县| 绍兴县| 双流县| 芮城县| 桃江县| 长顺县| 吴忠市| 勃利县| 仙居县| 上思县| 石首市| 兴义市| 龙州县| 乡城县|