Проект - игра, скроллшутер. При клике рождается объект "Пуля" и при определенных координатах ( уход за область игры) она должна уничтожиться. Все ок когда пуля одна. Но тк мне надо чтобы я мог делать неограниченное количество выстрелов то я помещаю пули в массив и каждый кадр делаю апдейт циклом столько раз соклько пуль на сцене. Но когда пуля достигает координат в которых должна быть уничтожена возникает ошибка "ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display::DisplayObjectContainer/removeChild()
at game_fla::MainTimeline/moveBullet()"
Понятно что я как то неправильно удаляю. Подскажите, как правильно пожалуйста.
Вот часть кода о которой я говорю.
Код
stop();
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.events.Event;
var numOfitems:Number=0;
var bullets_arr:Array = new Array();
stage.addEventListener (MouseEvent .MOUSE_DOWN , addBullet);
function addBullet(c:MouseEvent ):void {
var bullet:mc_bullet = new mc_bullet();
addChild(bullet);
bullets_arr.push(bullet);
numOfitems = bullets_arr.length;
}
addEventListener(Event.ENTER_FRAME, moveBullet);
function moveBullet(e:Event) :void
{
for(var i:int=0; i < numOfitems; i++ )
{
bullets_arr[i].update();
if (bullets_arr[i].y < 200)
{
removeChild(DisplayObject(bullets_arr[i]));
trace("bullet removed by range");
}
}
}
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.events.Event;
var numOfitems:Number=0;
var bullets_arr:Array = new Array();
stage.addEventListener (MouseEvent .MOUSE_DOWN , addBullet);
function addBullet(c:MouseEvent ):void {
var bullet:mc_bullet = new mc_bullet();
addChild(bullet);
bullets_arr.push(bullet);
numOfitems = bullets_arr.length;
}
addEventListener(Event.ENTER_FRAME, moveBullet);
function moveBullet(e:Event) :void
{
for(var i:int=0; i < numOfitems; i++ )
{
bullets_arr[i].update();
if (bullets_arr[i].y < 200)
{
removeChild(DisplayObject(bullets_arr[i]));
trace("bullet removed by range");
}
}
}
Я не очень понимаю кто является вызывающим объектом для bullets_arr[i] - bullets_arr? stage? или может я вообще неправильно делаю...
Тут граница установлена в 200 пикселей сверху для наглядности исчезает пуля или нет.
Спасибо
