FlexiPedia Wiki on Adobe Flex
Флэш Потрошитель - Жизнь вокруг технологииЖизнь вокруг технологии

Флэш Потрошитель этот | тот | 1.0

С 09.09.2002
  • Коллекция багов Flash
  • Ссылки для начинающего аниматора
  • Flex для PHP-разработчиков
  • Как вы используете Flash?

Поток сознания

polovaikin ответил на Что такое матрица:

флеш рипер уже не тот ;)

 
 

7 часов назад

Флэшер-аноним ответил на Что такое матрица:

Картинки можно дополнить текстом.

http://www.chemometrics.ru/materials/textbooks/matrix.htm

21 час назад

makc3d ответил на Еще один способ заработать на играх:

ща потестим

1 день назад

Rost ответил на Еще один способ заработать на играх:

Fixed.

2 дня назад

7a ответил на BAFPUG revolution!:

Мы были на прошлой неделе в Белоруссии проездом, было очень холодно: ночью в Гомеле -32 %) Спасибо за приглашение, у меня есть сильное желание приехать и послушать доклады, интересные темы, но всё же в следующий раз, когда будет потеплее ;)

2 дня назад

Флэшер-аноним ответил на Релиз Alternativa3D 8.5.0 - с поддержкой GPU!:

Большое спасибо, очень интересно.

4 дня назад

Флэшер-аноним ответил на Cоздание мобильного Flash-приложения "Hello World" - урок для начинающих:

Наконец нашел что-то путное по теме. Начну разжевывать. Несколько дней уйдет, однако.

5 дней назад

Флэшер-аноним ответил на Избранные баги Flash:

Мне пришлось столкнуться с тем, что элементарно не работает комбинация клавиш Ctrl + C и Ctrl + V. Причем переустанавливали Flash и не раз. Может быть, есть здесь те, кто сталкивался с этой проблемой и как-то смог решить ее?

1 неделя назад

makc3d ответил на Избранные баги Flash:

beer good. spam bad!

1 неделя назад

Флэшер-аноним ответил на Избранные баги Flash:

Хотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...

1 неделя назад

Более старые 
Главная › Блоги › Блог Rost

Как считать русский символ с клавиатуры в ActionScript3

Задача: получить введенный с клавиатуры символ.
Решение: тривиальная вещь, о которой не задумаешься, пока ее недореализация не заберет пару часов времени бесплодных попыток найти решение там, где его нет.

В Actionscript 3 событие KeyboardEvent.KEY_DOWN не содержит информации о реальном коде нажатого на клавиатуре символа, а содержит лишь код латинского символа, соотвествующего нажатой клавише - в свойстве charCode.

Проще говоря, узнать из события KeyboardEvent о том, что был введен русский символ Й (код 1049), а не Q (код 81) - невозможно без лишних действий. Даже в русской раскладке клавиатуры вы будете получать код 81.

Обойти это можно, разместив в приложении невидимое текстовое поле, и, дав ему фокус ввода, слушать его событие TextEvent.TEXT_INPUT - тогда можно узнать введенный в текстовое поле символ, хоть кириллический, хоть иероглиф. Пример есть на FlexExamples, см второй пример на странице. Некрасиво, но работает.

Это баг, его нужно исправить - и он уже занесен в Adobe JIRA, но интересен комментарий разработчика Flash Player: .

"Событие нажатия клавиши относится к клавишам, а не символам. После того, как ОС сопоставляет клавиши символам, мы получаем событие символа, и если мы попытаемся в это влезть, мы окажемся в мире боли, с каждой отличающейся раскладкой клавиатуры. Пользователи не должны ожидать, что событие нажатия клавиши будет работать с введенным символовм - об этом даже есть примечание в ASLR:
Примечание: так как раскладка (соответствие между клавишами и конкретными символами) зависит от устройства и операционной системы, используейте событие TextEvent для обработки ввода символов."

Я недостаточно крут в раскладках, но с моей, юзерской точки зрения, разработчики проигрывателя все же должны позаботиться об этом за кодеров - ведь если многие наступают на одни грабли и ищут введенный символ в событии KEY_DOWN или KEY_UP, то это что-то означает?

Да и не хочется внедрять в проект невидимое текстовое поле и давать ему фокус ввода лишь затем, чтобы узнать код введенного символа. Или все же есть другой, способ, красивее?

  • as3
  • keyboard
  • Подсказки
- Rost, ср, 20/01/2010 - 12:42
  • Блог пользователя Rost
  • В Жуйк

Комментарии

так ответили ж вроде Smile

Примечание: так как раскладка (соответствие между клавишами и конкретными символами) зависит от устройства и операционной системы, используейте событие TextEvent для обработки ввода символов."

http://help.adobe.com/en_US/Flex/4.0/langref/flash/events/TextEvent.html.

Reijii - http://reijii.solartxit.com/ 12:57 20/01/10

Было б отлично, если б они в евент добавили свойство "nativeCharCode".
Было б красиво и локанично
event.сharCode (клавиши)
event.nativeCharCode (клавиши с учетом раскладки)

jloa - http://chargedweb.com/labs/ 16:38 20/01/10

Кстати, мне сегодня рассказали, что баг FP-40 теперь проявляется и в Win7.

Dan 20:13 20/01/10

урра! его таки пофиксили )
http://bugs.adobe.com/jira/browse/FP-40
Key: FP-40
Issue Type: Bug
Status: Closed
Priority: None
Resolution: Fixed

WD479 (не проверено) 01:57 27/01/10

Charcode мало чем поможет.
Есть люди которые (особенно в восточной европе, кроме России и Украины) используют фонетические раскладки. То есть F = Ф и т. KeyUp / KeyDown это аналоги, аналогичных флагов на С, поэтому и диспатчатся они так, эти события не предназначенны для определения символа, они именно для кода кнопки. Собственно их используют для Keyboard Shortcuts и тд. Поэтому вешать дополнительный фукнционал не вижу смысла.

Что нужно, так это аналог C/C++ флажков, которые бы устанавливались бы после Down/Up и говорили бы нам данные о раскладке, или просто конкретный character, то есть по аналогии с TextEvent но без TextField.

А вешать на KeyUp/Down доп функционал – имхо только замедлит диспатч события.

Nirth - http://blog.kiichigo.eu 06:10 21/01/10

о, тема с цветными буквами прогрессирует? дописал подсчёт очков? если так, то почему бы не использовать латинские буквы и стандартную русскую раскладку "в уме" для проверки.

makc (не проверено) 09:36 21/01/10

Тема прогрессирует, но аппликуха для детей, но про подсчет подумаю )

Rost - http://rajaka.net/ 13:55 21/01/10

а для чего это надо? , объясните плз новичку дилетанту.

mailar (не проверено) 10:11 25/01/10
Примечания: Статус документа => в процессе ·
Статьи · Идеальный клип · Персоналии · Глоссарий (уст.) · Что делать? · К началу ↑
© 2002-2012 Ростиславр · О проекте · Подписка на RSS · α-тестировани невероятного
]]>
]]>
Что такое OpenID?
  • Войти по OpenID
  • Скрыть вход по OpenID
  • Регистрация
  • Запросить новый пароль