| lolsuicide |
19.07.2011 17:37 |
Обработка клавиш
Реализовал нажатие клавиш вот таким способом:
Код AS3:
public var pressedKeys:Object = { }; //массив клавиш
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
public function key_press() // вызываю событие в каждом кадре
{
...
if (pressedKeys[32]) // пример обработки действия по нажатию
{
...
}
if (pressedKeys[192]) // и т.д. ифы используемых клавиш
{
...
}
...
}
function key_down(e:KeyboardEvent)
{
if( pressedKeys[ e.keyCode ] )
return;
pressedKeys[ e.keyCode ] = 1;
}
function key_up( e:KeyboardEvent )
{
delete pressedKeys[ e.keyCode ];
}
1 - По идее тут можно хоть 10 кнопок нажать, все должны обрабатываться, о нажатия иногда или залепают или он не реагирует на следующую зажатую клавишу, как это можно поправить?
2 - Как узнать какие клавиши нажаты в данный момент - как вынуть список из pressedKeys?
|