Do following if you want to traverse through sorted ArrayCollection, update multiple items and trigger only one collection change event to optimize performance of components that use the collection.
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
var collection:ArrayCollection = new ArrayCollection();
collection.addItem({bar:"bar1", foo:1});
collection.addItem({bar:"bar2", foo:2});
collection.addItem({bar:"bar3", foo:3});
collection.addItem({bar:"bar4", foo:4});
var sort:Sort = new Sort();
sort.fields = [new SortField("foo")];
collection.sort = sort;
collection.refresh();
collection.addEventListener(CollectionEvent.COLLECTION_CHANGE, function(e:CollectionEvent):void {
trace(e.type);
});
collection.disableAutoUpdate();
var cursor:IViewCursor = collection.createCursor();
while (!cursor.afterLast) {
cursor.current.foo++;
cursor.view.itemUpdated(cursor.current);
cursor.moveNext();
}
collection.enableAutoUpdate();


