[問題] 發射子彈間隔失敗~~求解

作者: mucoci (奇寶~)   2013-12-02 21:07:07
小弟要作出 機體在射出子彈後,隔三秒才能再發射
由監聽滑鼠click 開始
完成後
一開始的確正常
但過一會兒如果連點滑鼠後,就失常了
變成可以連發@@"
隔三秒的限制不見了~~
請各位高手協助看一下是哪的問題~
程式碼如下
//監聽滑鼠點擊來發射子彈
nowthis.stage.addEventListener(MouseEvent.MOUSE_DOWN,BulletEvent);
function BulletEvent(me:MouseEvent):void
{
if (MouseEvent.CLICK && canfire == 1) //變數canfire用來控制是否可發射
{ 1可發射,2不可發射
canfire =2; //可發射後,立刻讓接下來變不可發射
並移除滑鼠點擊的監聽
stage.removeEventListener(MouseEvent.MOUSE_DOWN,BulletEvent);
//當滑鼠按下時,在場景上創造一個子彈
var ball_mc =new ball();
  //設定子彈出現時的起始座標,正常來說應該是要設定在子彈的砲口處
ball_mc.x=nowthis['warcarshooter_mc'].x;
ball_mc.y=nowthis['warcarshooter_mc'].y;
//這裡是設定子彈行進的位移速度,分別計算出來並且寫入子彈的屬性內
  //屬性名稱可以自己定
ball_mc.MoveX=carbulletspeed/30*Math.cos((nowthis['warcarshooter_mc'].rotation-90)*Math.PI/180);
ball_mc.MoveY=carbulletspeed/30*Math.sin((nowthis['warcarshooter_mc'].rotation-90)*Math.PI/180);
ball_mc.rotation=nowthis['warcarshooter_mc'].rotation-90;
nowthis.addChild(ball_mc);
//賦予子彈一個ENTER_FRAME的事件
ball_mc.addEventListener(Event.ENTER_FRAME,BulletMoveEvent);
//下面是在3秒後,變可射擊狀態,同時加回滑鼠監聽
setInterval(function ()
{
canfire = 1;
stage.addEventListener(MouseEvent.MOUSE_DOWN,BulletEvent);
}, 3000);
}
}
感謝~~
作者: emily114005 (璦冪瑮)   2013-02-03 08:51:00
clearInterval

Links booklink

Contact Us: admin [ a t ] ucptt.com