Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как избавиться от автоповтора нажатой и удерживаемой клавиши? (http://www.flasher.ru/forum/showthread.php?t=123022)

yaVasya 23.03.2009 12:36

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

on (keyPress "<Space>") {}

При нажатии и удерживании клавиши "пробел" случается автоповтор, а мне нужно, чтобы код выполнялся только один раз в момент нажатия клавиши. Пробовал использовать getTimer(), поставив внутри фигурных скобок дополнительное условие, чтобы код срабатывал только если после последнего срабатывания события прошло не менее 100 мс, но не помогло: автоповтор все равно осуществляется.

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

iflamberg 23.03.2009 12:59

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

yaVasya 24.03.2009 11:14

Спасибо. Сделал так:
Код AS1/AS2:

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

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


Часовой пояс GMT +4, время: 12:07.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.