Как вариант можно подписать каждый объект на событие Event.CHANGE (Или на какое-нибудь свое MyLittleSprite.CHANGED_COORDINATES) и сделать обработчик события в одном месте, например в объекте-родителе ваших спрайтов. При изменении координат любого объекта производить диспетчиризацию события Event.CHANGE, на которое вы собственно и подписали объект, и обрабатывать это событие во внешнем обработчике. Тогда не будет никаких циклов.
На несколько задач вопрос решается аналогично - в зависимости от изменения диспетчиризуем одно, второе или третье событие. Или одно и то же событие, но с разными параметрами
Вариант с одним событием:

Код AS3:
...
//Там, где у вас добавляются CustomSprite в вектор:
public function generateSprites():void
{
for(var i:uint = 0; i < 30; i++)
{
var myLittleCustomSprite:CustomSprite = new CustomSprite();
myLittleCustomSprite.addEventListener(Event.CHANGE, somethingHappened);
customSpriteVector.push(myLittleCustomSprite);
}
}
public function somethingHappened(e:Event):void
{
trace("Изменились координаты или того хуже");
}
...
/**
* В вашем классе CustomSprite
*/
public function changedSomething():void
{
dispatchEvent(new Event(Event.CHANGE));
}
Вариант с N событиями (один из):

Код AS3:
public class MyCustomEvent extends Event
{
public MyCustomEvent(type:String, changeTracker:String , bubbles:Boolean = false, cancelable:Boolean = false)
}
...
//Там, где у вас добавляются CustomSprite в вектор:
public function generateSprites():void
{
for(var i:uint = 0; i < 30; i++)
{
var myLittleCustomSprite:CustomSprite = new CustomSprite();
myLittleCustomSprite.addEventListener(Event.CHANGE, somethingHappened);
customSpriteVector.push(myLittleCustomSprite);
}
}
public function somethingHappened(e:Event):void
{
var receivedEvent = e as MyCustomEvent;
switch(receivedEvent.changeTracker)
{
case "changedX":
trace("Изменился Х");
break;
case "changedY":
trace("Изменился Y");
break;
case "changedVisibility":
trace("Изменился visibility");
break;
}
}
...
/**
* В вашем классе CustomSprite
*/
public function changedSomething(changed:String):void
{
dispatchEvent(new MyCustomEvent(Event.CHANGE, changed));
}
По моему как то так.