PDA

Просмотр полной версии : еще раз про отлов клавиши


firsoff
25.02.2006, 00:36
мне нужно отлавливать нажатие пробела (Space), делаю все как доктор прописал:
myListener = new Object();
myListener.onKeyDown = function ()
{
if(Key.isDown(Key.SPACE)){myFunction();}
}

Key.addListener(myListener);
все работает, но через раз, думал-размышлял, вставил trace в myFunction(); и был очень удивлен, если удерживать пробел то функция постоянно срабатывает (у меня пробелом включается выключается пауза в игре), как сделать чтобы myFunction() срабатывала только один раз ( при срабатывании пробела, а не при его удержании)?

Antares
25.02.2006, 03:08
Поставить флаг, который будет убираться по onMouseDown. При этом, чтобы не срабатывало на отпускание других клавиш, меняй значение флага только тогда, когда пробел не нажат.

firsoff
25.02.2006, 12:28
ага примерно так и сделал, только на onKeyUp флаг прикрутил, все робит.

Antares
25.02.2006, 18:39
Тьфу........:) Я сонный был, конечно на onKeyUp

meiciuc
25.02.2006, 18:48
ага примерно так и сделал, только на onKeyUp флаг прикрутил, все робит.

тогда и флаг не нужен.

Antares
25.02.2006, 18:51
Нужен. Проблема-то в прижатии. К тому же, попробуй нажми пробел, потом 1, потом единицу отпусти и посмотри, что будет.

Все чуть сложнее, чем сначала кажется.

seifip
25.02.2006, 18:57
ili delaj chtob po SPACE pauza delalasj a pri klike myshi ubiralasj... No flag tozhe neslozhno postavitj... Probuj... vsjo skoro poluchitsja... Glavnoje poboljshe tracov stavj ;)

meiciuc
25.02.2006, 19:17
я имел ввиду конкретный случай - у парня только пауза в игре ставится по-пробелу. В других вариантх - без флага не обойтись.