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

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

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

Регистрация: Jun 2006
Сообщений: 60
По умолчанию Перевод кода клавиши в символ ASCII

Здравствуйте!
Банальный вопрос, как перевести код клавиши в символ или набор символов? Неужели в самом деле описывать вручную?
Добродарю.
__________________
kto™

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

Регистрация: Sep 2002
Сообщений: 30,787
String.fromCharCode, Key.getAscii

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

Регистрация: Jun 2006
Сообщений: 60
String.fromCharCode Преобразует код символа в строку. А мне нужено код клавиши преобразовать в символ ASCII

например клавиша "Left"
Key.getCode()=37
String.fromCharCode(37)=%

Ну и остальные функциональные клавиши
__________________
kto™


Последний раз редактировалось iNils; 17.10.2008 в 19:39.
Старый 17.10.2008, 19:28
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не понимаю. Символ — не строка?

Код:
onKeyDown = function() {
    trace(String.fromCharCode(Key.getAscii()));
}
Key.addListener(this);
Или вам ещё нужны имена всех остальных клавиш? Если да, то в хелпе есть таблица, сделайте класс с соответствиями (благо, не так уж и много) и вуаля.

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

Регистрация: Jun 2006
Сообщений: 60
хорошо, сделаю. Спасибо за совет.

Домашнее задание выполнил.
Если кому пригодится
Код:
//Клавесин.as
class Клавесин{
	public function Клавесин(код_клавиши:Number):String {
		switch(код_клавиши){
			case 8:
				return("Backspace")
			break
			case 9:
				return("Tab")
			break
			case 13:
				return("Enter")
			break
			case 16:
				return("Shift")
			break
			case 17:
				return("Ctrl")
			break
			case 19:
				return("Pause/Break")
			break
			case 20:
				return("Caps Lock")
			break
			case 27:
				return("Escape")
			break
			case 32:
				return("space")
			break
			case 33:
				return("Page Up")
			break
			case 34:
				return("Page Down")
			break
			case 35:
				return("End")
			break
			case 36:
				return("Home")
			break
			case 37:
				return("Left")
			break
			case 38:
				return("Up")
			break
			case 39:
				return("Right")
			break
			case 40:
				return("Down")
			break
			case 45:
				return("Insert")
			break
			case 46:
				return("Delete")
			break
			case 96:
				return("Num Pad 0")
			break
			case 97:
				return("Num Pad 1")
			break
			case 98:
				return("Num Pad 2")
			break
			case 99:
				return("Num Pad 3")
			break
			case 100:
				return("Num Pad 4")
			break
			case 101:
				return("Num Pad 5")
			break
			case 102:
				return("Num Pad 6")
			break
			case 103:
				return("Num Pad 7")
			break
			case 104:
				return("Num Pad 8")
			break
			case 105:
				return("Num Pad 9")
			break
			case 106:
				return("Num Pad *")
			break
			case 107:
				return("Num Pad +")
			break
			case 109:
				return("Num Pad -")
			break
			case 110:
				return("Num Pad .")
			break
			case 111:
				return("Num Pad /")
			break
			case 112:
				return("F1")
			break
			case 113:
				return("F2")
			break
			case 114:
				return("F3")
			break
			case 115:
				return("F4")
			break
			case 116:
				return("F5")
			break
			case 117:
				return("F6")
			break
			case 118:
				return("F7")
			break
			case 119:
				return("F8")
			break
			case 120:
				return("F9")
			break
			case 122:
				return("F11")
			break
			case 123:
				return("F12")
			break
			case 144:
				return("Num Lock")
			break
			case 145:
				return("Scroll Lock")
			break
			case 186:
				return(";")
			break
			case 189:
				return("-")
			break
			case 191:
				return("/")
			break
			case 192:
				return("`")
			break
			case 219:
				return("[")
			break
			case 220:
				return("\ ")
			break
			case 221:
				return("]")
			break
			case 222:
				return("'")
			break
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 77:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 84:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
				return(String.fromCharCode(код_клавиши) )
			break
		}
	}
}
пока не сообразил правда как его вызывать, видимо нужно будет создать объект, послать код который нужно преобразовать, а потом удалить.

Код нерабочий A constructor may not specify a return type.

Ошибку понимаю, как разрешить не догадался, может поможете?

Всё исправил. Спасибо за дружественную атмосферу!
Код:
//any.fla
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
  _root.текст0.text =Key.getCode()+" = "+узнай_свою_судьбу.на_отдай(Key.getCode())
};
fscommand("trapallkeys","true");
var узнай_свою_судьбу:Клавесин = new Клавесин()

_root.createTextField("текст0",this.getNextHighestDepth(),215, 264, 150, 34)
_root.текст0.text = 'hello'
_root.текст0.type = "dynamic";
_root.текст0.border = true;
_root.текст0.background = true;
_root.текст0.password = false;
_root.текст0.multiline = true;
_root.текст0.embedFonts = false;
_root.текст0.variable = null;

Key.addListener(keyListener);
Код:
//Клавесин.as
class Клавесин{
	public function на_отдай(код_клавиши:Number):String {
		switch(код_клавиши){
			case 8:
				return("Backspace")
			break
			case 9:
				return("Tab")
			break
			case 13:
				return("Enter")
			break
			case 16:
				return("Shift")
			break
			case 17:
				return("Ctrl")
			break
			case 19:
				return("Pause/Break")
			break
			case 20:
				return("Caps Lock")
			break
			case 27:
				return("Escape")
			break
			case 32:
				return("space")
			break
			case 33:
				return("Page Up")
			break
			case 34:
				return("Page Down")
			break
			case 35:
				return("End")
			break
			case 36:
				return("Home")
			break
			case 37:
				return("Left")
			break
			case 38:
				return("Up")
			break
			case 39:
				return("Right")
			break
			case 40:
				return("Down")
			break
			case 45:
				return("Insert")
			break
			case 46:
				return("Delete")
			break
			case 96:
				return("Num Pad 0")
			break
			case 97:
				return("Num Pad 1")
			break
			case 98:
				return("Num Pad 2")
			break
			case 99:
				return("Num Pad 3")
			break
			case 100:
				return("Num Pad 4")
			break
			case 101:
				return("Num Pad 5")
			break
			case 102:
				return("Num Pad 6")
			break
			case 103:
				return("Num Pad 7")
			break
			case 104:
				return("Num Pad 8")
			break
			case 105:
				return("Num Pad 9")
			break
			case 106:
				return("Num Pad *")
			break
			case 107:
				return("Num Pad +")
			break
			case 109:
				return("Num Pad -")
			break
			case 110:
				return("Num Pad .")
			break
			case 111:
				return("Num Pad /")
			break
			case 112:
				return("F1")
			break
			case 113:
				return("F2")
			break
			case 114:
				return("F3")
			break
			case 115:
				return("F4")
			break
			case 116:
				return("F5")
			break
			case 117:
				return("F6")
			break
			case 118:
				return("F7")
			break
			case 119:
				return("F8")
			break
			case 120:
				return("F9")
			break
			case 122:
				return("F11")
			break
			case 123:
				return("F12")
			break
			case 144:
				return("Num Lock")
			break
			case 145:
				return("Scroll Lock")
			break
			case 186:
				return(";")
			break
			case 189:
				return("-")
			break
			case 191:
				return("/")
			break
			case 192:
				return("`")
			break
			case 219:
				return("[")
			break
			case 220:
				return("\ ")
			break
			case 221:
				return("]")
			break
			case 222:
				return("'")
			break
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 77:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 84:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
				return(String.fromCharCode(код_клавиши) )
			break
		}
	}
	public function Клавесин(){
	}
}
Добродарю

key_code_from_ascii.rar
__________________
kto™


Последний раз редактировалось iNils; 18.10.2008 в 01:06.
Старый 18.10.2008, 01:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Пользователь ktotam забанен на месяц за мультипостинг.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 18.10.2008, 01:10
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Лучше вместо case здесь использовать массив, в котором индексы элементов будут соответствовать кодам клавиш, а значения -- именам клавиш. Т.е. кодом клавиши "выбиваешь" из массива имя. Меньше вычислений будет.

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от udaaff Посмотреть сообщение
Лучше вместо case здесь использовать массив, в котором индексы элементов будут соответствовать кодам клавиш, а значения -- именам клавиш. Т.е. кодом клавиши "выбиваешь" из массива имя. Меньше вычислений будет.
Не говоря уже об элементарной проверки наличия индекса в массиве и при его отсутствии отправлять fromCharCode.

А вообще, приведенный код безумен, мало того, что на русском, так ещё и switch в тучу строк с пачкой просто пустых цифирек.

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

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

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


 


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


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