深复制是克隆一个数组或者object很有效的方法,深复制以后的对象中的新元素只是原始数据元素的备份,并无内在联系。两个对象的状态是完全一致的,但是元素存放的是不同的引用,指向不同的对象。
解决方案:
把你想要深复制的的数组或者object写进字节数组中,然后重置position的位置(把position置为0),最后重新从字节数组中读取出来。
详细解释:
这里是一个简单的工具类,封装了一个通过深复制实现的clone方法:
- package
- {
- import flash.utils.ByteArray;
- public class DeepCopyUtil
- {
- public static function clone (source : Object) : *
- {
- var array : ByteArray = new ByteArray ();
- array.writeObject (source);
- array.position = 0;
- return array.readObject ();
- }
- }
- }