Вызывать каждый раз splice может быть накладно.
Вот скоростной вариант:

Код AS3:
var lenght:uint = items.length;
var currentIndex:uint = 0;
var i:uint;
var item:ItemObject;
for (i = 0; i < lenght; i++)
{
item = items[i];
// Тут производим действия над элементом
// ...
if (checkItem(items[i])) //если нужно удалять
{
items[i] = null;
continue;
}
// Сдвиг текущих элементов в списке, если предыдущие были удалены.
if (currentIndex != i)
{
items[currentIndex] = item;
items[i] = null;
}
currentIndex++;
}
// Обрезание списка от отработанных элементов
if (lenght != currentIndex)
items.length = currentIndex;
На основе класса Juggler (Starling)