2010-02-04 71 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));