论坛首页 编程语言技术论坛

FLEX技巧口袋——AS3中进行深度拷贝

浏览 2051 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-27  

AS3中没有直接提供对象深度拷贝的语法,但却提供了ByteArray对象,可以让我们JAVA中的对象序列化一样,来实现对象的深度拷贝。

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp();">
	<mx:Script>
		<![CDATA[
			private var source:Object=new Object();
			
			private function initApp():void{
				var obj:Object=new Object();
				obj.name="sourceValue";
				this.source=obj;
				obj.name="changeValue";
				trace(this.source.name);
				
				//output changeValue
			}
			
			
			private function initApp():void{
				var obj:Object=new Object();
				obj.name="sourceValue";
				this.source=this.cloneObject(obj);
				obj.name="changeValue";
				trace(this.source.name);
				
				//output sourceValue
			}
			
			private function cloneObject(obj:Object):*{
				var ba:ByteArray=new ByteArray();
				ba.writeObject(obj);
				ba.position=0;
				return ba.readObject();
			}
		]]>
	</mx:Script>
</mx:Application>

 

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics