На самом деле делать такое в один проход опрометчиво. если один спрайт, например, сталкивается с несколькими, то решение "в один проход" отработает только одно столкновение. Сразу после первого столкновения и удаления другие спрайты уже кагбе ни с кем не сталкиваются.

Код AS3:
public function hitsp():void {
// здесь будем отмечать кандидатов на удаление
var vrArr:Array = new Array();
var vzArr:Array = new Array();
var i:uint;
var j:uint;
// сначала фиксируем все столкновения
for each (i in listvr) {
for each (j in listvz) {
if (listvr[i].hitTestObject(listvz[j])) {
vrArr[i] = 1;
vzArr[j] = 1;
}
}
}
// а потом лишь зачисточка
for each (i in listvr) {
if (vrArr[i] == 1) {
removeChild(listvr[i]);
delete listvr[i];
}
}
for each (j in listvz) {
if (vzArr[j] == 1) {
removeChild(listvz[j]);
delete listvz[j];
}
}
}