0

この問題についてお聞きしたいのですが。ムービークリップ(インスタンス名:char)を持っています。その中には2つのフレームがあります。最初のフレームにはムービークリップが含まれています(ムービークリップにするのに苦労する理由を忘れたことはありません)。この最初のフレームには、フレームラベル「まだ」があります。

2番目のフレームにもムービークリップが含まれ、その中には12フレームが含まれています。この2番目の最初のフレームにはフレームラベル「run」がありますこれは私のコードです

char.gotoAndStop(char.still);

stage.addEventListener(KeyboardEvent.KEY_DOWN, keysDown);
stage.addEventListener(KeyboardEvent.KEY_UP,keysUp);


function keysDown(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.RIGHT)
    {       
        char.gotoAndStop("run");
        this. char.scaleX = 1;
    }   
}

function keysUp(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.RIGHT)
    {
        char.gotoAndStop("still");
    }
}

問題は、右矢印ボタンを押すと移動しますが、ムービークリップ(フレーム名「run」)はループできないか、フレーム1〜12から完全に再生できず、フレーム1〜9からのみ再生されて停止します(フレーム10またはループに移動しないでください)私のコードに何か問題がありますか?

4

1 に答える 1

0

KEY_DOWN-Eventが実際に発生する頻度を確認してください。たとえば、トレースするだけです。

function keysDown(e:KeyboardEvent):void{
    if(e.keyCode == Keyboard.RIGHT)
    {       
        trace("pressed");
        char.gotoAndStop("run");
        this. char.scaleX = 1;
    }   
}

キーを押している間だけでなく、イベントがスローされることに気付くでしょう。実際には、gotoAndStop( "run")を繰り返し呼び出します。これにより、アニメーションmcが常に再起動します。

于 2012-08-30T08:10:22.213 に答える