21 час назадКартинки можно дополнить текстом.
http://www.chemometrics.ru/materials/textbooks/matrix.htm
2 дня назадМы были на прошлой неделе в Белоруссии проездом, было очень холодно: ночью в Гомеле -32 %) Спасибо за приглашение, у меня есть сильное желание приехать и послушать доклады, интересные темы, но всё же в следующий раз, когда будет потеплее ;)
5 дней назадНаконец нашел что-то путное по теме. Начну разжевывать. Несколько дней уйдет, однако.
1 неделя назадМне пришлось столкнуться с тем, что элементарно не работает комбинация клавиш Ctrl + C и Ctrl + V. Причем переустанавливали Flash и не раз. Может быть, есть здесь те, кто сталкивался с этой проблемой и как-то смог решить ее?
1 неделя назадХотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...
Задача: получить введенный с клавиатуры символ.
Решение: тривиальная вещь, о которой не задумаешься, пока ее недореализация не заберет пару часов времени бесплодных попыток найти решение там, где его нет.
В 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, то это что-то означает?
Да и не хочется внедрять в проект невидимое текстовое поле и давать ему фокус ввода лишь затем, чтобы узнать код введенного символа. Или все же есть другой, способ, красивее?

Комментарии
так ответили ж вроде
Примечание: так как раскладка (соответствие между клавишами и конкретными символами) зависит от устройства и операционной системы, используейте событие TextEvent для обработки ввода символов."
http://help.adobe.com/en_US/Flex/4.0/langref/flash/events/TextEvent.html.Было б отлично, если б они в евент добавили свойство "nativeCharCode".
Было б красиво и локанично
event.сharCode (клавиши)
event.nativeCharCode (клавиши с учетом раскладки)
Кстати, мне сегодня рассказали, что баг FP-40 теперь проявляется и в Win7.
урра! его таки пофиксили )
http://bugs.adobe.com/jira/browse/FP-40
Key: FP-40
Issue Type: Bug
Status: Closed
Priority: None
Resolution: Fixed
Charcode мало чем поможет.
Есть люди которые (особенно в восточной европе, кроме России и Украины) используют фонетические раскладки. То есть F = Ф и т. KeyUp / KeyDown это аналоги, аналогичных флагов на С, поэтому и диспатчатся они так, эти события не предназначенны для определения символа, они именно для кода кнопки. Собственно их используют для Keyboard Shortcuts и тд. Поэтому вешать дополнительный фукнционал не вижу смысла.
Что нужно, так это аналог C/C++ флажков, которые бы устанавливались бы после Down/Up и говорили бы нам данные о раскладке, или просто конкретный character, то есть по аналогии с TextEvent но без TextField.
А вешать на KeyUp/Down доп функционал – имхо только замедлит диспатч события.
о, тема с цветными буквами прогрессирует? дописал подсчёт очков? если так, то почему бы не использовать латинские буквы и стандартную русскую раскладку "в уме" для проверки.
Тема прогрессирует, но аппликуха для детей, но про подсчет подумаю )
а для чего это надо? , объясните плз новичку дилетанту.