![]() |
проблема: раскладка клавиатуры
Опытным кодерам вопрос.
Задание такое - программа, аналогичная клавиатурному тренажеру, с поддержкой разных языков, необходимо, чтобы она реагировала на переключение раскладки на клавиатуре Пробовал варианты: 1. Класс Key some_mc.onKeyDown=function(){ if(Key.getAcsii()==needfull_symbol){trace ("we happy!");} else {trace ("nevemind")}; } Key.addListener(some_mc); Не катит, т.к. Key.getAcsii() возвращает только коды латинских символов, бесполезно сравнивать со знаками кириллицы (needfull_symbol="Л") 2. Дополнить вышеописаный код функицией, заменяющие латинские символы на кириллицу. If(pressed_symbol="s"){needfull_symbol="ы";} - для каждого символа Не катит, т.к. количество возможных языков потенциально неограничено, и для каждого из них придется создавать свой вариант такой функции 3. Использование TextField type="input" - введенный текст реагирует на переключение раскладки клавиатуры, само текстовое поле можно сделать невидимым, что бы не мешало, а сравнение символов проводить по событию text_field_item.onChange=function(){ if(last_symbol==needfull_symbol){trace ("we happy!");} else {trace ("nevemind")}; } Пока используется такой код, но и он неустраивает, т.к. в текстовое поле нужно передать и удерживать фокус ввода, причем сделать это програмно - Selection.setFocus("text_field_item"); не получается - onChanged срабатывает только после установки курсора в поле ввода вручную, мышкой. Если кто-то подскажет решение, в котором пользователю не нужно устанавливать курсор в поле ввода (пользователь вообще не должен знать о его существовании) буду чрезвычайно благодарен. |
похоже вот так получается
tf.addListener(tfl={});//tf- input TextField Key.addListener(kl={}); kl.onKeyDown=function(){ Selection.setFocus(tf); } tfl.onChanged=function(){ trace(tf.text); } |
Спасибо!
Спасибо, это помогло.
|
| Часовой пояс GMT +4, время: 19:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.