浏览 2051 次
锁定老帖子 主题:FLEX技巧口袋——AS3中进行深度拷贝
精华帖 (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>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |