`
hacker47
  • 浏览: 336563 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

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>

 

4
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics