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

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

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

Регистрация: Jun 2010
Сообщений: 120
По умолчанию Клавиши расположенные в нескольких местах

Возникла проблема такого рода. При нажатии левого или правого Shift в Output ничего не пишет. Ось - Mac OS X, раскладка - U.S. English.

Код AS3:
package
{
	import flash.display.*;
	import flash.events.*;
	import flash.ui.*;
 
	public class KeyDuplicate extends Sprite
	{
 
		public function KeyDuplicate()
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
		}
 
		private function keyDownListener(e:KeyboardEvent):void
		{
			if (e.keyCode == Keyboard.SHIFT)
			{
				if (e.keyLocation == KeyLocation.LEFT)
				{
					trace("The left Shift key was pressed");
				}
				else if (e.keyLocation == KeyLocation.RIGHT)
				{
					trace("The right Shift key was pressed");
				}	
			}
		}
	}
}

Старый 05.10.2011, 18:03
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
где-то я читал ,что мак не имеет различия между левым и правым шифтом

Добавлено через 1 минуту
http://answers.unity3d.com/questions...-both-key.html
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 05.10.2011, 18:05
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 3  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Как минимум - надо добавить еще два trace.
Перед if (e.keyCode == Keyboard.SHIFT).
И после if (e.keyCode == Keyboard.SHIFT).

Что пишет?

Старый 05.10.2011, 18:10
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 4  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Цитата:
Сообщение от trng Посмотреть сообщение
Как минимум - надо добавить еще два trace.
Перед if (e.keyCode == Keyboard.SHIFT).
И после if (e.keyCode == Keyboard.SHIFT).

Что пишет?
Как смысл добавлять, если эти клавиши имеют один тот же код = 16. Если написать перед if, выводит сообщение о том что Shift нажат.
А на винде данный код работает?

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

Регистрация: Jun 2011
Сообщений: 212
Цитата:
Сообщение от Genzo Посмотреть сообщение
где-то я читал ,что мак не имеет различия между левым и правым шифтом

Добавлено через 1 минуту
http://answers.unity3d.com/questions...-both-key.html
Там написано про "обратную" проблему - В обоих случаях trace срабатывает.

Старый 05.10.2011, 18:14
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 6  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Цитата:
Сообщение от trng Посмотреть сообщение
Там написано про "обратную" проблему
там это где?
Цитата:
Сообщение от trng Посмотреть сообщение
В обоих случаях trace срабатывает.
Код AS3:
private function keyDownListener(e:KeyboardEvent):void
{
	trace("The Shift key was pressed"); // Срабатывает
 
	if (e.keyCode == Keyboard.SHIFT)
	{
		if (e.keyLocation == KeyLocation.LEFT)
		{
			trace("The left Shift key was pressed"); // Не срабатывает
		}
		else if (e.keyLocation == KeyLocation.RIGHT)
		{
			trace("The right Shift key was pressed"); // Не срабатывает
		}	
	}
	trace("The Shift key was pressed"); // Срабатывает
}

Старый 05.10.2011, 18:17
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 7  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Цитата:
А на винде данный код работает?
Работает.
The left Shift key was pressed
The right Shift key was pressed

Добавлено через 2 минуты
А так?
Код AS3:
private function keyDownListener(e:KeyboardEvent):void
{
	trace("The Shift key was pressed"); // Срабатывает
 
	if (e.keyCode == Keyboard.SHIFT)
	{
		trace("e.keyCode == Keyboard.SHIFT");
		if (e.keyLocation == KeyLocation.LEFT)
		{
			trace("The left Shift key was pressed"); // Не срабатывает
		}
		else if (e.keyLocation == KeyLocation.RIGHT)
		{
			trace("The right Shift key was pressed"); // Не срабатывает
		}	
	}
 
}

Цитата:
там это где?
http://answers.unity3d.com/questions...-both-key.html
Вот:
Unity console will return both "Left Shift" and "Right Shift" each time the key is pressed. This also happens if I specifically bind the "left shift" and "right shift" keys to an input in the Input Manager.


Последний раз редактировалось trng; 05.10.2011 в 18:22.
Старый 05.10.2011, 18:40
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 8  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
Mac doesn't send different commands for each key.
!!!
Цитата:
Unity console will return both "Left Shift" and "Right Shift" each time the key is pressed. This also happens if I specifically bind the "left shift" and "right shift" keys to an input in the Input Manager.
Это потому что там событие ловит keyCode а не keyLocation
Код AS3:
        if (Input.GetKeyDown(KeyCode.LeftShift)) {
        Debug.Log("Left Shift");
    }
 
    if (Input.GetKeyDown(KeyCode.RightShift)) {
        Debug.Log("Right Shift");
    }
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 05.10.2011, 18:44
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 9  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Короче, я так понял, что конкретного ответа на данный вопрос нету применительно к Flash IDE.

Старый 05.10.2011, 19:00
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 10  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
goldlider вы хоть попроьбовали хоть раз заменить keyLocation на keyBoard и keyCode ? Помоему нет
__________________
Марк Tween

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

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

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


 


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


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