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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 18.08.2012, 22:53
Nace вне форума Посмотреть профиль Отправить личное сообщение для Nace Найти все сообщения от Nace
  № 11  
Nace

Регистрация: Oct 2009
Сообщений: 52
На самом деле я не корректно изначально задал вопрос, я имел в виду, то что команда:
Цитата:
stage.addEventListener(keyboardEvent.KEY_DOWN, keyPressed);
в AS3 работает, так же как:
Цитата:
on(keyPress "")...
в AS2. А мне нужна функция(команда), которая работала бы, как:
Цитата:
if(Key.isDown())...
только для AS3!

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
А кто вам мешает подписаться на KeyboardEvent.KEY_DOWN и KeyboardEvent.KEY_UP, а в обработчиках событий уже обновлять состояния клавиш (нажата / отпущена), которые вас интересуют?

Старый 18.08.2012, 23:12
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 13  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
private function keyboardHandler(event:KeyboardEvent):void 
{
	switch(event.keyCode)
	{
		case Keyboard.UP : 
			trace("Up"); 
			break;
		case Keyboard.DOWN : 
			trace("Down");
			break;
		case Keyboard.LEFT :
			trace("Left");
			break;
		case Keyboard.RIGHT :
			trace("Right");
			break;
		default :
			trace("O___o", event.keyCode, "is not direct key");
	}
}
__________________
Reality.getBounds(this);

Старый 18.08.2012, 23:13
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 14  
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
А вообще, киньте исходник! Ато мы тут все флудим-флудим (уже 2 страници попортили) и толком вас не удовлетворили с ответами

Старый 18.08.2012, 23:28
Nace вне форума Посмотреть профиль Отправить личное сообщение для Nace Найти все сообщения от Nace
  № 15  
Nace

Регистрация: Oct 2009
Сообщений: 52
Wolsh, а если клавиша не наименованная, например W?

Старый 18.08.2012, 23:30
Krusty вне форума Посмотреть профиль Отправить личное сообщение для Krusty Найти все сообщения от Krusty
  № 16  
Krusty

Регистрация: Jul 2007
Сообщений: 393
event.keyCode == число

Старый 18.08.2012, 23:42
Nace вне форума Посмотреть профиль Отправить личное сообщение для Nace Найти все сообщения от Nace
  № 17  
Nace

Регистрация: Oct 2009
Сообщений: 52
Только что попробовал event.keyCode == 68(d) и он не фига не сделал, хотя и ошибку не выдал!

Добавлено через 1 минуту
Уже исправил, там в коде уже находился event.keyCode)) просто нужно было цифарку после кейса написать))

Добавлено через 3 минуты
На самом деле то что вы предложили не помогло, он всё равно изначально дёргает его 1 раз, а потом многократно двигает, наверное придёться использовать Ентер Фрэм, и другого пути нет(
И кстате тут таймерами можно пользоваться? Если да то как?)

Старый 18.08.2012, 23:46
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 18  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Пишите константы, Вам же легче будет.
Keyboard.D
Это не "именование". Это и есть число 68.

Добавлено через 6 минут
Метод тыка Вам не поможет. Разберитесь в проблеме. Примените это все к объекту без покадровой анимации, просто меняйте координату. Найдите причину.
__________________
Reality.getBounds(this);

Старый 18.08.2012, 23:54
Nace вне форума Посмотреть профиль Отправить личное сообщение для Nace Найти все сообщения от Nace
  № 19  
Nace

Регистрация: Oct 2009
Сообщений: 52
Спасибо)

Старый 19.08.2012, 00:04
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 20  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Не, ну если Вам нужно именно хранилище данных, какие клавиши нажаты в данный момент, и Вы по ентерфрейму проверяете хранилище и в соответствии с нажатыми клавишами прибавляете/убавляете координаты объекта, то надо написать это хранилище. Как Вам уже сказали, два отдельных слушателя на KEY_UP и на KEY_DOWN, в них подобные свитчи, устанавливающие 4 флага keyW, keyS, keyA и keyD соответственно в true (DOWN) и false(UP). А по ентерфрейму просто спрашиваете флаги:
Код AS3:
if(keyA) pers.x-=speed;
__________________
Reality.getBounds(this);

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

Теги
addeventlistener

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

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


 


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


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