私は、アイドル状態、歩行状態、旋回状態、ジャンプ状態、攻撃状態、ダンス状態で、複数のアニメーションを持つキャラクター(myHero)を持っています。 私が使用しているコードでは、アニメーション全体が機能するようにボタンを押したままにしておく必要があります(歩いているときはうまくいきましたが、例えば攻撃したいときはボタンを一度押して全体のアニメーションも一度に再生されます) 現在のところ、アニメーションを再生するにはボタンを押し続ける必要があります。私はキーを押し下げすること続けなければならない。これによりActionScript3.0ボタンを押した後に文字アニメーションを停止する
var keyRight:Boolean=false;
var keyLeft:Boolean=false;
var keyUp:Boolean=false;
var keyAttack:Boolean=false;
var keyDance:Boolean=false;
myHero.gotoAndStop(1);//the idle animation
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown_Handler)
function keyDown_Handler(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.X)
{
keyAttack=true;
}
//theres more code for the other keys all similar to this
}
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp_Handler)
function keyUp_Handler(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.X)
{
myHero.gotoAndStop(1);//the idle animation
keyAttack=false;
}
//theres more code for the other keys all similar to this
}
: これは私のコードです。
if(event.keyCode == Keyboard.X)
{
if(myHero.Attack.currentFrame==8)//the animation is 8 frames long
{
myHero.gotoAndStop(1);//the idle animation
keyAttack=false;
}
}
をしかし、私は別のキーとそれをキャンセルしない限り、私は、キーを押したときに、今のアニメーションは永遠にループ:だから私はkeyDown_Handerにこれを追加しようとしました。 stop()を追加しようとしました。アニメーションの最後のフレームに移動しますが、最後のフレームでフリーズし、私が望むようにアイドル状態に戻りません。
助けが必要ですか?
実際に攻撃のアニメーションをどのように開始するのかはわかりません。 (Xを押してアイドルフレームに行き、 'keyAttack'を' false 'に設定します)。あなたの主人公の構造を明らかにしてください、その中にあなたの子供MovieClipがAttackと呼ばれるように見えますか? – BadFeelingAboutThis
myHeroには6つの異なるキーフレームがあり、それぞれに異なるアニメーションが含まれています。それで意味があるならば、それぞれのキーフレームは異なるボタンによってトリガーされますか?私は、キーが押されたときに真であり、押されていないときには偽であるようにブール値を設定します。 – DJmangoLORD
彼はアニメーションの状態を処理するために何かをしたいと思う。 再生攻撃アニメーション - >攻撃アニメーションが終了したとき - >再生アイドル – Nambew