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