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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: Jan 2002
Адрес: Russia, Yoshkar-Ola
Сообщений: 9
По умолчанию Как получить код вводимых русских букв?

Проблема такая:
Нужно обработать вводимые с клавиатуры русские буквы.
Key.getAscii() возвращает код только английских буквы.
А как получить код русских? В любом варианте или в Ascii или в юникоде.
В дальнейшем я их буду обрабатывать:
letter = String.fromCharCode(1041); // для юникода
letter1 = chr(193); // для Ascii

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

Регистрация: Jan 2002
Адрес: Russia, Yoshkar-Ola
Сообщений: 9
Спасибо за быстрый ответ.
trace(chr(a=1103));
trace(chr(255));
trace(chr(255) == chr(a));
тут макромедийцы конечно постарались, ничего не скажешь.
но с этим я как раз раз разобрался.

У меня основная проблемма другая:
как мне получить код вводимых русских букв с клавиатуры?
в любом виде, хоть юникод, хоть ascii.
Key.getAscii() выдает код только латинских букв и спецсиволов.

Старый 12.02.2004, 19:59
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ааа... понятно о чем ты :)

не знаю как сделать получше - я бы сделал по-простому:
Код:
en = "qwertyuiop[]asdfghjkl;'zxcvbnm,.";
ru = "йцукенгшщзхъфывапролджэячсмитьбю";
en = en.split("");
ru = ru.split("");
ru_unicode = {};
for (var i = 0; i<en.length; i++) {
	ru_unicode["en"+ord(en[i])] = ru[i];
}
this.onKeyDown = function() {
	var ru = ru_unicode["en"+Key.getAscii()];
	var en = Key.getAscii();
	if (ru.length) {
		trace("en : "+en+", ru: "+ru+"("+ord(ru)+")");
	} else {
		trace("en : "+en+"("+chr(en)+")");
	}
};
Key.addListener(this);
Цитата:
Оригинал написал(а) yuriex
trace(chr(a=1103));
trace(chr(255));
trace(chr(255) == chr(a));
кстати, в МХ 2004 они это исправили :)
даже если публиковать под шестерку - все равно этот баг уже не срабатывает :)


Последний раз редактировалось Nox Noctis; 12.02.2004 в 20:03.
Старый 13.02.2004, 12:04
yuriex вне форума Посмотреть профиль Отправить личное сообщение для yuriex Посетить домашнюю страницу yuriex Найти все сообщения от yuriex
  № 5  
yuriex

Регистрация: Jan 2002
Адрес: Russia, Yoshkar-Ola
Сообщений: 9
Большое спасибо, Nox Noctis!

Это действительно выход из положения.
Там только в цикле добавил ord(en[i])
for (var i = 0; i<en.length; i++) {
ru_unicode["en"+ord(en[i])] = ru[i];
}
и получил, то что хотел.


единственный минус такого подхода:
не работают буквы б и ю
и при включенной русской раскладке буквы х, ъ, ж, э

Старый 13.02.2004, 12:15
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) yuriex
Это действительно выход из положения.
Там только в цикле добавил ord(en[и])
аа... сорри :) это не опечатка кстати и не ошибка.. :) просто при автоматическом форматировании сообщения символы "[и]" воспринялись как начало тега курсива :))

Цитата:
Оригинал написал(а) yuriex
единственный минус такого подхода:
не работают буквы б и ю
и при включенной русской раскладке буквы х, ъ, ж, э
"б" и "ю" не работают только когда ты запускаешь свфку прямо из редактора флэша. сам едактор перехватывает нажатия некоторых клавиш - поэтому до свф они просто не доходят...

а с включенной русской раскладкой мона поморочиться - просто посмотри какие коды там возвращаются и добавь им соответствия в строки en и ru


Последний раз редактировалось Nox Noctis; 13.02.2004 в 12:26.
Старый 13.02.2004, 12:28
yuriex вне форума Посмотреть профиль Отправить личное сообщение для yuriex Посетить домашнюю страницу yuriex Найти все сообщения от yuriex
  № 7  
yuriex

Регистрация: Jan 2002
Адрес: Russia, Yoshkar-Ola
Сообщений: 9
Цитата:
"б" и "ю" не работают только когда ты запускаешь свфку прямо из редактора флэша. сам едактор перехватывает нажатия некоторых клавиш - поэтому до свф они просто не доходят...
Ура! Действительно в swf "б" и "ю" работают.

Еще раз спасибо!

Старый 21.02.2004, 12:00
Master Paleva вне форума Посмотреть профиль Отправить личное сообщение для Master Paleva Посетить домашнюю страницу Master Paleva Найти все сообщения от Master Paleva
  № 8  
Master Paleva

Регистрация: Oct 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 60
Отправить сообщение для Master Paleva с помощью ICQ
Я тоже столкнулся с такой проблемой, когда делал одну флешку. Но решил я её таким образом: кождому коду клавиши присваивал значение русской буквы. Довольно длинный скрипт получился и нелепый. Приклепляю свою флешку, чтобы вы могли увидеть это в действии (это архив rar, но переименован в zip).
Вложения
Тип файла: zip flash-stamina.zip (23.2 Кб, 144 просмотров)

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

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

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


 


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


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