Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   проблема: раскладка клавиатуры (http://www.flasher.ru/forum/showthread.php?t=56664)

_zhloba 05.04.2004 22:13

проблема: раскладка клавиатуры
 
Опытным кодерам вопрос.
Задание такое - программа, аналогичная клавиатурному тренажеру, с поддержкой разных языков, необходимо, чтобы она реагировала на переключение раскладки на клавиатуре

Пробовал варианты:

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 срабатывает только после установки курсора
в поле ввода вручную, мышкой.

Если кто-то подскажет решение, в котором пользователю не
нужно устанавливать курсор в поле ввода (пользователь
вообще не должен знать о его существовании)
буду чрезвычайно благодарен.

silin 05.04.2004 23:55

похоже вот так получается
tf.addListener(tfl={});//tf- input TextField
Key.addListener(kl={});
kl.onKeyDown=function(){
Selection.setFocus(tf);
}
tfl.onChanged=function(){
trace(tf.text);
}

_zhloba 06.04.2004 10:14

Спасибо!
 
Спасибо, это помогло.


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

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