0
まず、この愚かな質問を申し訳ありません(私はAS3で新しくなっています)。私はこの問題を2週間以上無駄にして、ここにそれを掲示しています。1つのキーでフルMcを再生
私は英雄をキーボードで動かしています。私は3つのアニメーションを持っています。
背後
- スタンバイモード
- 徒歩フロント
- 徒歩それは今のところうまく機能していますが、私はプレーヤーをジャンプに直面しています問題は、ジャンプするキーを押したままにする必要がされます。私は、飛び降りをするために鍵を保持することをプレイヤーに要求されたくない。 私は1つのキーを押すだけで完全なMovieClipを再生したいと思います。正直なところ、使用する機能や操作方法がわかりません。
Here is the file、ここでは私のコード
import flash.display.Stage; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.display.MovieClip; import flash.events.Event; kim.gotoAndStop("kim Stand"); var grav:int = 0; var floor = 450; var dPressed:Boolean = false; var aPressed:Boolean = false; var jumping:Boolean = false; stage.addEventListener(KeyboardEvent.KEY_DOWN , keyDownHandaler); stage.addEventListener(KeyboardEvent.KEY_UP , KeyUpHandaler); stage.addEventListener(Event.ENTER_FRAME , gameLoop); function keyDownHandaler(Devent:KeyboardEvent):void { if (Devent.keyCode == Keyboard.D) { dPressed = true; } else if (Devent.keyCode == Keyboard.A) { aPressed = true; } else if (Devent.keyCode == Keyboard.W && !jumping) { jumping = true; } } function KeyUpHandaler (Uevent:KeyboardEvent):void { if (Uevent.keyCode == Keyboard.D) { dPressed = false; kim.gotoAndStop("kim Stand"); } else if(Uevent.keyCode == Keyboard.A) { aPressed = false; kim.gotoAndStop("kim Stand"); } else if(Uevent.keyCode == Keyboard.W) { jumping = false; kim.gotoAndStop("kim Stand"); } } function gameLoop(Levent:Event):void { if (dPressed) { kim.x += 5; kim.gotoAndStop("kim Move Right"); } else if(aPressed) { kim.x -= 5; kim.gotoAndStop("kim Move Left"); } else if(jumping) { kim.gotoAndStop("kim Jump"); kim.y -= 10; } gravity(); } function gravity():void { kim.y += grav; if (kim.y+kim.height/2 <floor){ grav++; } else { grav = 0; kim.y = floor - kim.height/2 ; } }