Это потому, что у вас есть только 1 пуля.
Вы можете создать массив пуль, поэтому измените
public var bullet:Bullet = new Bullet();
до
public var bullets:Array = [];
Тогда
ship.addEventListener(MouseEvent.CLICK, shoot);
function shoot(e:MouseEvent):void
{
var b:Bullet=new Bullet();
b.addEventListener(Event.ENTER_FRAME, bulletflies);
stage.addChild(b);
bullets.push(b);
}
function bulletflies(e:Event):void
{
e.currentTarget.y -= 5;
if(e.currentTarget.y < 0 || e.currentTarget.y > stage.height) {
stage.removeChild(e.currentTarget);
bullets.splice(bullets.indexOf(e.currentTarget), 1);
}
}
- EDIT -
В ответ на ваш комментарий
Мне не нравится идея, что каждая пуля имеет свой собственный ENTER_FRAME
Добавить строку stage.addEventListener(Event.ENTER_FRAME, bulletflies);
под ship.addEventListener(MouseEvent.CLICK, shoot);
Удалить b.addEventListener(Event.ENTER_FRAME, bulletflies);
и измените обработчик события следующим образом:
function bulletflies(e:Event):void
{
for each(var b:Bullet in bullets) {
b.y -= 5;
if(b.y < 0 || b.y > stage.height) {
stage.removeChild(b);
//bullets.splice(bullets.indexOf(b), 1);
}
}
}