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:*) {
             ;
         }
     }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值