2010-02-04 8 views
3

ObjectUtil.copy() 및 ByteArray.writeObject/readObject()를 사용하여 이상한 동작이 발생했습니다.
ArrayCollection을 복제하고 언젠가 결과가 클래스의 동일한 두 인스턴스입니다.플렉스 : 복제 기능 복제 내 데이터

예 :

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() 함수의 버그입니까?

+0

복제는 복제를 의미하지 않습니다. 새 개체를 만들고 속성 값을 복사하는 고유 한 복제 방법을 만듭니다. –

답변

0

원래 배열 컬렉션의 인스턴스에 대한 참조를 보유 할 배열 컬렉션의 복제본이 필요한 경우 원본 배열을 복제 할 수 있습니까?

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

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