2010-02-04 47 views
3

我有一些奇怪的行为,使用ObjectUtil.copy()和ByteArray.writeObject/readObject()。
我克隆一个ArrayCollection,有时结果是两个相同的类的实例。Flex:克隆函数复制我的数据

例子:

var item:Object = new Object(); 
item.name = "Hello World"; 

var listItem:ArrayCollection = new ArrayCollection(); 
listItem.push(item:Object); 

var cloneList:ArrayCollection = ObjectUtil.copy(listItem); 

trace(cloneList.length);  
// 2 

我不明白我做了什么错。有没有错过? 对于所有的ArrayCollection它是不可复制的。有一段时间,它工作正常。 它是一个ObjectUtil.copy()函数的bug吗?

+0

复制并不意味着克隆。在创建新对象和复制属性值的地方制作自己的克隆方法。 – 2010-10-07 09:47:04

回答

0

如果您需要一个数组集合的克隆来保存对原始数组集合的实例的引用,那么您是否可以不仅克隆源数组?

例如

var listItem:ArrayCollection = new ArrayCollection(); 
listItem.push(item:Object); 

var cloneList:ArrayCollection = new ArrayCollection(new Array().concat(listItem.source));