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

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

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Question Управление в игре при помощи клавиатуры

Здравствуйте уважаемые.
У меня вопрос крайне актуальный для меня. В игре сделал управление мышкой как реакция на нажатие кнопок(мувики) на виртуальном джойстике. Клиент попросил продублировать управление на клавишах со стрелками. Покопался по форумам нашел как правильно повешать события на клавиатуру.
Код:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
			stage.focus = parent;
Клавиши заработали. Столкнулся с проблемой что в процессе пока объект движется клавиши умудряют срабатывать на повторное нажатие. Повешал флаги для каждой кнопки указывающие активна или нет кнопка. Вроде работает но иногда вылетает. Подозреваю что срабатывает два события если нажимают две кнопки одновременно.
А еще проблема с фокусом, он периодически теряется и видно как фокус ходит по stage(большой желтый прямоугольник). Скажите что посоветуете сделать чтобы избавиться от этих недостатков
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

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

Регистрация: Jan 2007
Адрес: [1,1,1]
Сообщений: 135
Записей в блоге: 2
Отправить сообщение для PeTa4eK с помощью ICQ
Убери фокус. Без него все должно работать.

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

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
С клавишами я разобрался, из за расчетов в тригонометрии перепутал кнопки. Сделал как нужно и ошибки по клавишам пропали. Остался только фокус.
А без фокуса клавиши отказываются работать. А с фокусом появляется периодически этот желтый прямоугольник
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ


Последний раз редактировалось SunShadow; 16.08.2008 в 10:57.
Старый 17.08.2008, 23:18
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 4  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Код:
private function keyPressedDown(event:KeyboardEvent): void
{
    switch(event.keyCode)
    {
        case Keyboard.RIGHT:
        booleanRightArrow = true;
        break;
				
        case Keyboard.LEFT:
        booleanLeftArrow = true;
        break;
				
        default:
        break;
    }
}
		
		
private function keyPressedUp(event:KeyboardEvent): void
{
    switch(event.keyCode)
    {   
         case Keyboard.RIGHT :
         booleanRightArrow = false;
         break;	
                
	 case Keyboard.LEFT :
         booleanLeftArrow = false;
         break; 
				
	 default :
         break;
    }
}
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

Старый 20.02.2009, 16:10
Dante вне форума Посмотреть профиль Отправить личное сообщение для Dante Найти все сообщения от Dante
  № 5  
Ответить с цитированием
Dante

Регистрация: Feb 2009
Сообщений: 20
Код AS3:
var o:Object=new Object();
			o=false;
			stage.focusRect=o;


Последний раз редактировалось Dante; 20.02.2009 в 16:21.
Старый 20.02.2009, 17:21
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
мне помогло
stage.tabChildren = false;

Старый 20.02.2009, 19:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Dante Посмотреть сообщение
Код AS3:
var o:Object=new Object();
			o=false;
			stage.focusRect=o;
Витиевато, надо сказать.

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

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

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


 


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


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