|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Flash通常也指MacromediaFlashPlayer(现AdobeFlashPlayer)。2012年8月15日,Flash退出Android平台,正式告别移动端。
poluoluo中心提醒:as3中经由过程ByteArray能够举行工具的深度拷贝.
明天同事问我有as3中工具深度拷贝的成绩
本来还真是没用过,明天google后本人总结下,便于人人参考
as3中经由过程ByteArray能够举行工具的深度拷贝
importflash.utils.ByteArray;
importflash.utils.getQualifiedClassName;
importflash.net.*;
importsrc.*;
functioncloneObject(source:Object):*{
vartypeName:String=getQualifiedClassName(source);//猎取全名
trace(”输入类的布局”+typeName);
//return;
varpackageName:String=typeName.split(”::”)[0];//切出包名
trace(”类的称号”+packageName);
vartype:Class=getDefinitionByName(typeName)asClass;//猎取Class
trace(type);
registerClassAlias(packageName,type);//注册Class
//复制工具
varcopier:ByteArray=newByteArray();
copier.writeObject(source);
copier.position=0;
returncopier.readObject();
}
有的人说用复制工具那一段不就能够了吗,可是实践下行欠亨
关于数组深度复制来讲,复制工具的前面4句代码就充足了
vara1:Array=[1,2,3];
vara2:Array=cloneObject(a1);
vara3:Array=a1;
a1.push(”youmila”);
trace(”a1:”+a1+”a2:”+a2+”a3″+a3);
可是关于工具来讲一定不可
用列子测试下
src.youmila.as代码:
packagesrc{
publicclassyoumila{
privatevar$_name:String=”youmila”;
privatevar$_num:Number=0;
publicfunctionyoumila():void{
trace($_name);
}
publicfunctionsecondFunc():void{
$_num++;
trace(”thisacalledfunction$_num::”+$_num);
}
}
}
yapollo.as代码:
package{
publicclassyapollo{
privatevar$_name:String=”yapollo”;
publicvar$_num:Number=0;
publicfunctionyapollo():void{
trace($_name);
}
publicfunctionsecondFunc():void{
$_num++;
trace(”thisacalledfunction$_num::”+$_num);
}
}
}
测试实例
varuml1:youmila=newyoumila();
varuml2=cloneObject(uml1);
trace(”范例”+getQualifiedClassName(uml2));
输入了局:
youmila
范例Object
本来的工具范例丧失了,以是关于工具而言,四行不敷,必需
用registerClassAlias来保留类的别号,以用于丧失后恢复类的范例
测试实例
varuml1:youmila=newyoumila();
varuml2=cloneObject(uml1);
trace(”范例”+getQualifiedClassName(uml2));
varapollo:yapollo=newyapollo();
apollo.secondFunc();
varapollo2=cloneObject(apollo);
trace(”第一次输入复制工具的$_num值”+apollo2.$_num);
trace(”范例”+getQualifiedClassName(apollo2));
apollo2.secondFunc();
trace(”第二次输入复制工具的$_num值”+apollo2.$_num);
输入了局:
youmila
输入类的布局src::youmila
类的称号src
[classyoumila]
youmila
范例src::youmila
yapollo
thisacalledfunction$_num::1
输入类的布局yapollo
类的称号yapollo
[classyapollo]
yapollo
第一次输入复制工具的$_num值1
范例yapollo
thisacalledfunction$_num::2
第二次输入复制工具的$_num值2
借助令人兴奋的全新3D平移和旋转工具,通过3D空间为2D对象创作动画,您可以沿x、y、z轴创作动画。 |
|