Ну "правильнее" будет так:

Код AS3:
if((missile.x < -50 || missile.x > 500) && contains(missile)) {
removeChild(missile);
ammo.splice(ammo.indexOf(missile), 1);
}
вобщем
if (contains(missile)) {} используёте для предотвращения ошибок)
плюс у Вас в коде удаление из массива указано не было, а о нём также не нужно забывать
