zoukankan      html  css  js  c++  java
  • as3 深复制

    import flash.utils.ByteArray;
    
    import flash.utils.getQualifiedClassName;
    
    import flash.net.*;
    
    //支持自定义类
    //function copy(source:Object) :* {
    //
    //    var typeName:String = getQualifiedClassName(source);//获取全名
    //
    //    trace("输出类的结构"+typeName);
    //
    //    //return;
    //
    //    var packageName:String = typeName.split("::")[0];//切出包名
    //
    //    trace("类的名称"+packageName);
    //
    //    var type:Class = getDefinitionByName(typeName) as Class;//获取Class
    //
    //    trace(type);
    //
    //    registerClassAlias(packageName, type);//注册Class
    //
    //    //复制对象
    //
    //    var copier:ByteArray = new ByteArray();
    //
    //    copier.writeObject(source);
    //
    //    copier.position = 0;
    //
    //    return copier.readObject();
    //
    //}
    
    //不支持自定义类
    function copy(value:Object):*
    {
    
    	var buffer:ByteArray = new ByteArray();
    
    	buffer.writeObject(value);
    
    	buffer.position = 0;
    
    	var result:Object = buffer.readObject();
    
    	return result;
    
    }
    
    var init_arr:Array=[[1,2],[1,2]];
    var copy_arr:Array=copy(init_arr);
    init_arr[0]=[3,4];
    trace("init_arr: "+init_arr);
    trace("copy_arr: "+copy_arr);
    
    
    var init_obj:Object = {name:"name01",data:"data01"};
    var copy_obj:Object=copy(init_obj);
    init_obj["name"]="dt";
    var i:String;
    for(i in init_obj){
    	trace("init_obj: 键:"+i+" 值: "+init_obj[i]);
    }
    for(i in copy_obj){
    	trace("copy_obj: 键:"+i+" 值: "+copy_obj[i]);
    }
    

      

  • 相关阅读:
    DS博客作业06--图
    DS博客作业05--树
    DS博客作业03--栈和队列
    DS博客作业02--线性表
    DS博客作业03--栈和队列
    DS博客作业02--线性表
    DS博客作业01--日期抽象数据类型设计与实现
    C语言博客作业06--结构体&文件
    C语言博客05--指针
    C语言博客作业04--数组
  • 原文地址:https://www.cnblogs.com/dt1991/p/14108146.html
Copyright © 2011-2022 走看看