Если вы настроили управление клавишами, аналогичное мне, тогда это будет легко ..
У меня просто есть класс с массивом, у которого заданный индекс установлен в true / false на основе keyCode
нажатой / отпущенной клавиши.
Разбивка этого:
Когда я нажимаю «a» со значением ASCII или keyCode 65, тогда array[65]
устанавливается на true
. Когда я отпускаю клавишу «а», array[65]
устанавливается на false
.
Тогда у меня просто есть функция, которая возвращает логическое значение, представляющее нажатую клавишу. Вот краткий пример этого класса:
package
{
import flash.display.Stage;
import flash.events.KeyboardEvent;
public class Keystrokes
{
public static var keys:Array = [];
public static function init(stg:Stage):void
{
stg.addEventListener(KeyboardEvent.KEY_DOWN, _keyDown);
stg.addEventListener(KeyboardEvent.KEY_UP, _keyUp);
}
private static function _keyDown(e:KeyboardEvent):void
{
keys[e.keyCode] = true;
}
private static function _keyUp(e:KeyboardEvent):void
{
delete keys[e.keyCode];
}
public static function keyIsDown(...ascii):Boolean
{
var i:uint;
for each(i in ascii)
{
if(keys[i]) return true;
}
return false;
}
}
}
Теперь со всем, что сказано, вы могли бы в основном сделать:
Keystrokes.keys[keycode_for_right_arrow] = true;
При нажатии мыши и false
при ее отпускании.