2017-06-10 11 views
1

Iv'eはこのコードで作業しています。どうすれば修正できますか? "ArgumentError:エラー#1063:引数の数が一致しません"

その行うと仮定何
stage.addEventListener(KeyboardEvent.KEY_DOWN, detectKey); 

function detectKey(e:KeyboardEvent):void { 
// space: shoot 
if (e.keyCode == 32) { 
    shootBullet(); 
} 
} 



stage.addEventListener(KeyboardEvent.KEY_DOWN, shootBullet); 

function shootBullet():void{ 
var bulletSpeed:Number = 80; 
var bullet:Rapid = new Rapid(); 
stage.addChild(bullet); 
bullet.x = mini.x 
bullet.y = mini.y - 20 
var gameplay:Timer = new Timer(200); 
gameplay.start(); 
gameplay.addEventListener(TimerEvent.TIMER, moveBullet); 
function moveBullet(e:TimerEvent):void{ 
    bullet.y -= bulletSpeed; 
    if(bullet.y > stage.stageHeight + bullet.height){ 
     stage.removeChild(bullet); 
} 
} 
} 

stage.addEventListener(KeyboardEvent.KEY_UP, stoptimer); 

function stoptimer():void{ 

var end:Timer = new Timer(500); 
end.stop(); 
end.removeEventListener(TimerEvent.TIMER, remove); 
function remove(e:TimerEvent):void { 
    shootBullet(); 
} 
} 

私はスペースバーを押したときに、私は手放すまで、それは撮影を続けるです: は、これは私が修正しようとしている私のコードです。しかし、私は取得し続ける:

"ArgumentError: Error #1063: Argument count mismatch on hell_fla::MainTimeline/shootBullet(). Expected 0, got 1.

ArgumentError: Error #1063: Argument count mismatch on hell_fla::MainTimeline/stoptimer(). Expected 0, got 1."

誰かが私を助けることができますか?ありがとう。より良い

+3

てみます:void { ' – Cherniv

+1

は、なぜあなたは同じことを行う2イベントリスナーを追加している

はこのような何かを試してみてください? 'stage.addEventListener(KeyboardEvent.KEY_DOWN、shootBullet);を削除してください。 – DodgerThud

答えて

1

"What it's suppose to do is when I hold down spacebar, it will keep shooting until I let go..."

ような動きを実現するために代わりTimerイベントのEnter_frameイベントを使用します。 `関数shootBullet(E:KeyboardEventです):ようなあなたの` shootBullet`関数を定義する

//#1 Add Vars 

var bulletSpeed:Number = 80; 
var bullet:Rapid; 
var gameplay:Timer; 


//#2 Add Listeners 

//stage.addEventListener(KeyboardEvent.KEY_DOWN, shootBullet); //causes error 
stage.addEventListener(KeyboardEvent.KEY_DOWN, detectKey); //better way 


//#3 Add Functions 

function detectKey(e:KeyboardEvent):void 
{ 
    // space: shoot 
    if (e.keyCode == 32) { shootBullet(); } 
} 

function shootBullet():void 
{ 
    bullet = new Rapid(); 
    stage.addChild(bullet); 
    bullet.x = mini.x; 
    bullet.y = mini.y - 20; 

    // instead of gameplay timer setting up, just use : 
    // each unique NEW bullet will follow instruction in "moveBullet" 
    bullet.addEventListener(Event.ENTER_FRAME, moveBullet); 

} 

function moveBullet(evt:Event):void 
{ 
    evt.currentTarget.y -= bulletSpeed; 
    if(evt.currentTarget.y > stage.stageHeight + evt.currentTarget.height) 
    { 
     stage.removeChild(evt.currentTarget as DisplayObject); 
    } 
} 
+0

助けていただきありがとうございます。動いている間に宇宙船を握っていたら、弾丸を撃ちますコードがこれに入りますか? – lock

+0

'function detectKey'にある方向のキーコードを追加しようとしましたが、' moveInThatDirection() '関数もありますか?今何かをテストするフラッシュはありません... –

+0

まだそれを試してみません – lock

関連する問題