Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
agiliter
1 / 1 / 0
Регистрация: 13.12.2012
Сообщений: 102
1

Пауза/рывок при нажатии клавиши

15.10.2014, 21:56. Просмотров 738. Ответов 1
Метки нет (Все метки)

Добрый день! Пишу обработчик событий для клавиатуры (left, right ,up и down) и заметил одну неприятную вещь. После первого нажатия клавиши следует пауза, а далее идут повторы нажатой кнопки. Вот эта вот пауза с последующим дерганьем очень нелицеприятно смотрится когда, например, перемещаешь квадрат стрелками на клавиатуре, а он будет дергать при старте как загибающийся запорожец с резко брошенным сцеплением на приличных оборотах при включенной передаче. Можно ли от этого избавиться? Во многих игрушках проблем таких нет. Дело в коде или это особенность as3?

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);       
addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
 
private function keyDownHandler(e:KeyboardEvent):void
{
if (e.keyCode == Keyboard.LEFT) leftPressed = true;
if (e.keyCode == Keyboard.RIGHT) rightPressed = true;
if (e.keyCode == Keyboard.UP) upPressed = true;
if (e.keyCode == Keyboard.DOWN) downPressed = true;
 
move();
 
}
private function keyUpHandler(e:KeyboardEvent):void
{           
if (e.keyCode == Keyboard.LEFT) leftPressed = false;
if (e.keyCode == Keyboard.RIGHT) rightPressed = false;
if (e.keyCode == Keyboard.UP) upPressed = false;
if (e.keyCode == Keyboard.DOWN) downPressed = false;            
}
private function move():void
{
            if (leftPressed)
                box.move("left");
            if (rightPressed) 
                box.move("right");
            if (upPressed) 
                box.move("up");
            if (downPressed) 
                box.move("down");           
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2014, 21:56
Ответы с готовыми решениями:

После нажатии клавиши escape в полноэкранном режиме координаты мыши отображаются некоректно
Всем доброго времени суток! Решил создать свой плеер для сайта только при...

Вибрация при нажатии кнопки
Всем доброго времени суток. Прогуглил весь инет. К сожалению не владею...

Вставить ссылки при нажатии
Ребят помогите плз. мне нужно вставить ссылки при нажати. Я вставил но не...

Кнопки исчезающие при нажатии
Надо сделать в Macromedia Flash кнопки, которые исчезает при нажатии. На пример...

Появление объекта при нажатии на кнопку
Всем привет) Прошу вас помочь мне с небольшой проблемкой... Хочу создать...

1
TanaTiX
Модератор
2798 / 1652 / 168
Регистрация: 19.02.2011
Сообщений: 6,011
Завершенные тесты: 2
15.10.2014, 22:15 2
Цитата Сообщение от agiliter Посмотреть сообщение
Дело в коде или это особенность as3?
Это особенность ОС. Если открыть любой текстовый редактор, нажать и держать на клаве кнопку, печатающей любой символ, то сначала напечатается один символ, а остальные будут "бежать" через какое-то время.
Относительно кода - подход правильный, но move нужно выполнять не в обработчике клавиатурных событий, а в каждом кадре - чисто логический недочет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 22:15

смена картинки при нажатии кнопки
Доброго времени суток! Есть такой эффект на сайте disorg.ru, при нажатии...

Открыть окно при нажатии на баннер
Здравствуйте! Подскажите,как сделать такое, есть баннер на сайте при нажатии...

Появление текста при нажатии кнопки
Здравствуйте! По периметру квадрата расположены кнопки. Подскажите, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru