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]);
    }
    

      

  • 相关阅读:
    POJ 2528 Mayor's posters 线段树+离散化
    Leveldb之version与version_set详细对比
    rocksdb编译测试的正确姿势
    ycsb使用方法
    memalign vs malloc
    四种监听器(自身类,外部类,内部类,匿名类)
    数据库基础
    哈希索引和Btree索引
    哈希表hashtable
    抽象类和接口
  • 原文地址:https://www.cnblogs.com/dt1991/p/14108146.html
Copyright © 2011-2022 走看看