모든 배열 컬렉션 공통 소스를 공유한다고 가정하면, 내가 대신 ArrayCollections의 ListCollectionViews을 만들고 하나의 ArrayCollection에 모든 지점이 것, 즉 : 추가 또는에서 항목을 제거 할 때마다
var masterCollection:ArrayCollection = new ArrayCollection();
for (var i:uint = 0; i < N; i++)
{
slaveCollections[i] = new ListCollectionView(masterCollection);
}
slaveCollection은 마스터에서 추가/제거되고 다른 모든 목록은 CollectionEvent를 통해 업데이트됩니다. ...
for (var i:uint = 0; i < N; i++)
{
slaveCollections[i] = new ArrayCollection();
slaveCollections[i].addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionListener);
}
private function collectionListener(event:CollectionEvent):void
{
if (event.kind != CollectionEventKind.REMOVE)
return
for each(var slaveCollection:ArrayCollection in slaveCollections)
{
for each(var item:Object in event.items)
{
var itemIndex:int = slaveCollection.getItemIndex(item);
if (itemIndex >= 0)
{
slaveCollection.removeItemAt(itemIndex);
}
}
}
}
이를 모든 배열 모음 공통 소스를 공유하지 않는 것을 가정