Пауза/рывок при нажатии клавиши
Добавлено: 15 окт 2014, 20:56
Добрый день! Пишу обработчик событий для клавиатуры (left, right ,up и down) и заметил одну неприятную вещь. После первого нажатия клавиши следует пауза, а далее идут повторы нажатой кнопки. Вот эта вот пауза с последующим дерганьем очень нелицеприятно смотрится когда, например, перемещаешь квадрат стрелками на клавиатуре, а он будет дергать при старте как загибающийся запорожец с резко брошенным сцеплением на приличных оборотах при включенной передаче. Можно ли от этого избавиться? Во многих игрушках проблем таких нет. Дело в коде или это особенность as3?
Код: Выделить всё
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); private function keyDownHandler(e:KeyboardEvent):void{if (e.keyCode == Keyboard.LEFT) leftPressed = true;if (e.keyCode == Keyboard.RIGHT) rightPressed = true;if (e.keyCode == Keyboard.UP) upPressed = true;if (e.keyCode == Keyboard.DOWN) downPressed = true; move(); }private function keyUpHandler(e:KeyboardEvent):void{ if (e.keyCode == Keyboard.LEFT) leftPressed = false;if (e.keyCode == Keyboard.RIGHT) rightPressed = false;if (e.keyCode == Keyboard.UP) upPressed = false;if (e.keyCode == Keyboard.DOWN) downPressed = false; }private function move():void{ if (leftPressed) box.move("left"); if (rightPressed) box.move("right"); if (upPressed) box.move("up"); if (downPressed) box.move("down"); }