加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex:对象的深度拷贝

发布时间:2020-12-15 01:00:19 所属栏目:百科 来源:网络整理
导读:? 对象 的深度拷贝方法,在 应用 中经常需要传递一个对象参数,传递过去的对象的修改又不希望对原对象产生影响,用该对象方法可以轻松实现了 package { ? ?? ???import flash .utils.ByteArray;? ?? ? ? ?? ???import flash.utils.getQualifiedClassName; ?
?
对象的深度拷贝方法,在 应用中经常需要传递一个对象参数,传递过去的对象的修改又不希望对原对象产生影响,用该对象方法可以轻松实现了
  1. package {
  2. ? ?? ???import flash.utils.ByteArray;? ?? ?
  3. ? ?? ???import flash.utils.getQualifiedClassName;
  4. ? ?? ???import flash.utils.getDefinitionByName;? ?? ?
  5. ? ?? ???import flash.net.registerClassAlias;


  6. ? ?? ???public class CopyUtil{
  7. ? ?? ?? ?? ?? ? public static function clone(object:Object):Object{
  8. ? ?? ?? ?? ?? ?? ?? ?? ?var qClassName:String = getQualifiedClassName(object);
  9. ? ?? ?? ?? ?? ?? ?? ?? ?var objectType:Class = getDefinitionByName(qClassName) as Class;
  10. ? ?? ?? ?? ?? ?? ?? ?? ?registerClassAlias(qClassName,objectType);
  11. ? ?? ?? ?? ?? ?? ?? ?? ?var copier : ByteArray = new ByteArray();
  12. ? ?? ?? ?? ?? ?? ?? ?? ?copier.writeObject(object);
  13. ? ?? ?? ?? ?? ?? ?? ?? ?copier.position = 0;
  14. ? ?? ?? ?? ?? ?? ?? ?? ?return copier.readObject();
  15. ? ?? ?? ?? ?? ? }
  16. ? ?? ???}
  17. }

?

使用方法:
  1. var instanceA : ClassA = new ClassA();
  2. var instanceCopy : ClassA = CopyUtil.clone(instanceA ) as ClassA;
  3. trace(instanceCopy == instanceA)//fale;
  4. trace(instanceCopy??is ClassA) // true;
  5. trace(instanceCopy is superClass) //true;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读