すべての配列コレクションが共通のソースを共有していないと仮定すると、要件を処理するために各コレクションにコレクション イベント リスナーを追加します。
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);
}
}
}
}
これにより、任意のコレクションで collection.removeItem(x) を呼び出すことができ、そのアイテムを他のコレクションから削除できます。