PDA

Просмотр полной версии : Как избавиться от автоповтора нажатой и удерживаемой клавиши?


yaVasya
23.03.2009, 12:36
Есть конструкция on (keyPress "<Space>") {}При нажатии и удерживании клавиши "пробел" случается автоповтор, а мне нужно, чтобы код выполнялся только один раз в момент нажатия клавиши. Пробовал использовать getTimer(), поставив внутри фигурных скобок дополнительное условие, чтобы код срабатывал только если после последнего срабатывания события прошло не менее 100 мс, но не помогло: автоповтор все равно осуществляется.

Есть ли способ избежать автоповтора?

iflamberg
23.03.2009, 12:59
сделайте флаг. Если клавиша нажимается флаг устанавливается в true. Если отжимается - в false. Если keyPress срабатывает, а флаг уже установлен в true - не выполнять дейсвие повторно.

yaVasya
24.03.2009, 11:14
Спасибо. Сделал так:

var pressed:Boolean = false;

on (keyPress "<Space>") {
if (!pressed) {
pressed=true;
//требуемые действия
}
}

onClipEvent (keyUp) {
if (pressed) pressed=false;
}


Работает, как надо.