Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.01.2011, 19:59
MakTpaxep вне форума Посмотреть профиль Отправить личное сообщение для MakTpaxep Найти все сообщения от MakTpaxep
  № 1  
Ответить с цитированием
MakTpaxep

Регистрация: Jan 2011
Сообщений: 8
По умолчанию Частота событий от нажатой кнопки

Всем привет! Такой вопрос:

Если мы вешаем листенер на keydown и там, например, изменяем координаты объекта - то от чего зависит частота таких срабатываний? Можно ли в ентерфрейм сделать проверку на то какая кнопка нажата? И как осуществить движение по диагонали - когда зажаты две кнопки??

Заранее Спасибо!

Старый 08.01.2011, 20:11
Jarproger вне форума Посмотреть профиль Отправить личное сообщение для Jarproger Найти все сообщения от Jarproger
  № 2  
Ответить с цитированием
Jarproger
 
Аватар для Jarproger

блогер
Регистрация: Jul 2010
Сообщений: 117
Записей в блоге: 4
В AS 2.0 был метод key.isDown, но 3-й AS не предпологает такого. Но можно написать его самому)
Я класс для этого написал, пишите в личку, скину

Старый 08.01.2011, 21:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>от чего зависит частота таких срабатываний?
от системных настроек, имхо
>>Можно ли в ентерфрейм сделать проверку на то какая кнопка нажата?
в том же ентерфрейм проверять флаг(массив флагов), сбрасываемый/выставляемый по нажатию/опусканию кнопки

Старый 08.01.2011, 21:49
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Можно ли в ентерфрейм сделать проверку на то какая кнопка нажата?
Все на самом деле гораздо проще.
Нужно создать переменные типа Булево, например
Код AS3:
private var leftPressed:Boolean = false;
а потом в событии клавиатуры (KEY_DOWN) проверять код клавиши:
Код AS3:
if (e.keyCode == Keyboard.LEFT)
       leftPressed = true;
а в KEY_UP делать обратную проверку:
Код AS3:
if (e.keyCode == Keyboard.LEFT)
       leftPressed = false;
После этого в энтер фрейме можно проверять уже не сами клавиши, а эту переменную

Код AS3:
if (leftPressed) // производим какое-то действие

В таком случае и это:
Цитата:
И как осуществить движение по диагонали - когда зажаты две кнопки??
будет работать без проблем

Старый 08.01.2011, 21:52
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
А если нужно проверять 10 одновременно нажатых клавиш (утрирую)? Думаю, битовая маска могла бы подойти в этом случае больше.
Конечно, если речь о контролах и шифтах, то необходимости в таких извратах нет.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 08.01.2011, 21:54
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
10 одновременно нажатых клавиш - не получится,

Старый 08.01.2011, 21:55
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
TanaTiX, возможно, но даже я (уже не новичок) не очень представляю как это реализовать. А топикстартер явно новичок

Старый 08.01.2011, 22:07
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
сложность в том, что система не отдает все нажатые клавиши (три - не всегда и не любые)

Старый 08.01.2011, 22:13
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
но две отдает без проблем

Старый 08.01.2011, 23:07
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 10  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
Сообщение от silin Посмотреть сообщение
10 одновременно нажатых клавиш - не получится,
Вопрос не именно в нажатых клавишах. Можно по условию нажимать их с определенным интервалом. Да и не о клавишах я.


ЗЫ. а вообще на досуге нужно будет попробовать ради спортивного интереса...
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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