AS3 Steuerung mit der Tastatur

Ich habe eine as3 Funktion, die steuert, einen Film-clip mit der Tastatur:

Paket
{

import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;

public class Main_Character_Two extends MovieClip
{
    var vx:int;
    var vy:int;

    public function Main_Character_Two()
    {
        init();
    }
    function init():void
    {
        //initialize variables
        vx = 0;
        vy = 0;

        //Add event listeners
        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
        addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }
    function onKeyDown(event:KeyboardEvent):void
    {
        if (event.keyCode == Keyboard.LEFT)
        {
            vx = -5;
        }
        else if (event.keyCode == Keyboard.RIGHT)
        {
            vx = 5;
        }
        else if (event.keyCode == Keyboard.UP)
        {
            vy = -5;
        }
        else if (event.keyCode == Keyboard.DOWN)
        {
            vy = 5;
        }
    }
    function onKeyUp(event:KeyboardEvent):void
    {
        if (event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.RIGHT)
        {
            vx = 0;
        }
        else if (event.keyCode == Keyboard.DOWN || event.keyCode == Keyboard.UP)
        {
            vy = 0;
        }
    }
    function onEnterFrame(event:Event):void
    {
        //Move the player
        player.x += vx;
        player.y += vy;
    }
}

}

Diese funktioniert ok, aber das Hauptproblem ist, dass, wenn Sie drücken Sie die rechts-Taste gedrückt (und gedrückt halten) und drücken Sie dann die linke Taste, das Zeichen wird auf der linken Seite bewegen, aber wenn Sie lassen Sie die linke Taste (mit der rechten Taste immer noch gedrückt gehalten) der Charakter bleibt einfach stehen. Wie kann ich es so machen das der Charakter beginnt sich zu bewegen, um das Recht wieder in diese situation (wenn ich noch die Rechte Taste halten, nach Ive veröffentlicht die Links-Taste)

Dank

gute Frage.. aber warum brauchen Sie diese Funktion, wenn Sie nur bewegen 10px jedes mal, wenn eine Taste gedrückt wird, nicht wenn es nach unten gezogen wird? Fehlt ein onEnterFrame Ereignis-listener?
Ich denke, das könnte eine Einschränkung in der flash-player selbst.
Joyce ich ursprünglich falsch gepostet-code-Beispiel finden Sie unter den oben stehenden code für die richtige version, danke.

InformationsquelleAutor Rigil | 2011-04-19

Schreibe einen Kommentar