나는 왼쪽 키를 누른 채 오른쪽으로 움직이면 캐릭터가 왼쪽으로 이동하지만 더 느린 속도 (즉, movementSpeed / 2)로 움직이게하는 무브먼트 정비사에게 내 캐릭터를 넣으려고합니다. 도보 (비자 반대) :함수에 대해 키의 순차적 인 조합이 유지됩니까?
public var leftKey:Boolean = false;
public var rightKey:Boolean = false;
public var upKey:Boolean = false;
public var leftFlag:Boolean = false;
function ifKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT && rightKey == false)
{
leftKey = true;
if (event.keyCode == Keyboard.LEFT && event.keyCode == Keyboard.RIGHT)
{
leftFlag = true;
trace("leftFlag true");
}
}
if (event.keyCode == Keyboard.RIGHT && leftKey == false)
{
rightKey = true;
}
}
function ifKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftKey = false;
leftFlag = false;
}
if (event.keyCode == Keyboard.RIGHT)
{
rightKey = false;
}
}
public function ifEnterFrame(event:Event):void
{
if (leftKey == true && leftFlag == false)
{
player1_mc.x -= mainSpeed;
trace("L");
}
if (rightKey == true && leftFlag == false)
{
player1_mc.x += mainSpeed;
trace("R");
}
if (leftKey == true && rightKey == true)
{
if (leftFlag == true)
{
player1_mc.x -= mainSpeed/2;
trace("L + R");
}
else
{
player1_mc.x += mainSpeed/2;
trace("R + L");
}
}
내 출력은 다음과 같을 것이다 : 나는 L L L L 내가 왼쪽 키 놓아 키 왼쪽 개최. 그런 다음, 내가 잡아 바로 키 R R R R 내가 오른쪽 키의 가자 . 그런 다음, 나는 L R R + L L R R + I 모두 놓아 L 왼쪽 마우스 오른쪽 후 개최 누르고 있습니다. 그런 다음, 내가 L R R + L L R R + L
나는 leftFlag가 실행되고 있지 않은지 내 흔적으로 알고 있지만 잘 또한 다음 왼쪽 개최, 내가 노력하고 시간을 보냈어요 왜 쓸모 없는지 알아 내려고. :(