Обычно для удаления из массива, по которому бегут используют цикл в обратном порядке. Т.е. бежишь по массиву с конца

Код AS3:
for(var i:int=a2.length-1 ; i >= 0;i--)
тогда проблемы с удалением никогда не будет, ибо length не будет пересчитываться. И ты не будешь перепрыгивать через удаленные элементы.