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

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

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
По умолчанию узнать нажата ли кнопка

Как сделать что-то типа этого:

Код AS3:
addEventListener(Event.ENTER_FRAME,func);
 
function func(e:Event){
if(leftKeyPressed)
obj.x--;
}
где leftKeyPressed обозначает нажата ли левая стрелка. То есть как это узнать...

Старый 27.09.2009, 16:50
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Добавить обработчики KEY_DOWN и KEY_UP, в них устанавливать и сбрасывать флаги нажатия нужных клавиш, в программе проверять эти флаги.

Старый 27.09.2009, 17:03
KaBELSEA вне форума Посмотреть профиль Отправить личное сообщение для KaBELSEA Найти все сообщения от KaBELSEA
  № 3  
Ответить с цитированием
KaBELSEA

Регистрация: Sep 2009
Сообщений: 3
Код AS3:
addEventListener(KeyboardEvent.KEY_DOWN, key_pressed);
addEventListener(KeyboardEvent.KEY_UP, key_released);
addEventListener(Event.ENTER_FRAME,func);
 
        private function key_pressed(e:KeyboardEvent):void {
            switch (e.keyCode) {
                case Keyboard.LEFT :
	                isLeft = true;
                    break;
                case Keyboard.RIGHT :
	                isRight = true;
            }
        } // key_pressed()
 
        private function key_released(e:KeyboardEvent):void {
            switch (e.keyCode) {
                case Keyboard.LEFT :
	                isLeft = false;
                    break;
                case Keyboard.RIGHT :
	                isRight = false;
                    break;
            }
        } // key_released()
 
        function func(e:Event)
        {
               if(isLeft)
                     obj.x--;
        } // func()
типа так )


Последний раз редактировалось KaBELSEA; 27.09.2009 в 17:05.
Старый 27.09.2009, 17:28
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
а нельзя на прямую узнать нажата ли кнопка клавы или например мышки? + как же тогда быть с комбинациями, это что каждый раз изменять лог переменные?

Старый 27.09.2009, 17:33
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 5  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Напрямую нельзя. Да, изменять каждый раз. Если вам нужно опрашивать все клавиши, то можно завести просто массив флагов, тогда будет всего по одной строке кода в обработчиках нажатия и отпускания клавиш, а в программе проверять нажатие будете примерно так: if(array[Keyboard.RIGHT]) ..

Старый 27.09.2009, 17:36
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 6  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Понятно... Жаль конечно но что же поделаешь... Спасибо всем кто отвечал)

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

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

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


 


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


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