Просмотр полной версии : KeyboardEvent и русские буквы
MerlinTwi
13.10.2006, 18:53
В событии KeyboardEvent передается charCode в английской раскладке, даже если текущий русский язык, возможно ли получить русскую букву?
MerlinTwi
16.10.2006, 12:26
Пока такой возможности не нашел, но придумал как извратиться.
Создаем невидимое текстовое поле ввода (Input text), по событию KeyboardEvent.KEY_DOWN ставим фокус на это поле (stage.focus) и по KeyboardEvent.KEY_UP считываем текст из него.
Ммм, код клавиши не зависит от языка, вообще.
Просто нет возможности определить текущий язык клавиатуры и дело не в коде.
краткая лекция по клавиатуре:
в досе было всего 256 возможных символов. причем первые 128 описывали стандартные для всего мира (английский алфавит + управляющие символы) остальные (№№128-255) это уже зависит от локализации компа и прочего. В Винде такая же ботва только отличаются символы находящиеся в в этих последних символов + канешно добвились и другие (как это внутри работает я с ходу сказать не могу, но принцип тот же)
При нажатие на клавишу клавиатура передает компу номер нажтой клавиши(символа), номера клавиш в находяться все в том же диапазоне 0-255 (тут я немного вру, не все номера символов передаются, хотя в far в редакторе можно нажав alt и наклацав на NumPade нужный номер получить символ).
Если нажимается какая либо служебная клавиша или сочетание ctrl, alt + key, то клава передает 2 цифры первый 0, а потом уже номер этой клавиши.
Затем операционка получив номер этой клавиши уже делает соответствующие действия, в зависимости от параметров (языковая раскладка, настройки и еще чего-то).
К чему это я клоню, что charCode всегда один и тот же, не зависимо от того где наш комп и какая раскладка на нем включена.,
В AS3 тоже есть System.useCodePage, попробуй с ним. Если не поможет тогда я бы начал плясать от него по хелпу
__i, вот последний абзац я не понял, к чему ты его написал…
И каким образом это может помочь определению языка раскладки.
MerlinTwi
19.10.2006, 14:39
__i, ну у вас и каша в голове :) Ошибки и неточности в каждом предложении, а уж к теме топика это все вообще не имеет отношения.
Перефразирую задачу: требуется получить нажатый пользователем символ, если фокус не на Input text.
К примеру, имеем самописный ComboBox, хочется, чтобы в его открытом состоянии пользователь мог набирать символы для быстрого поиска нужной строки.
Ну, тут есть только такой вариант:
если в комбобоксе нет текста, набранного в английской раскладке — искать в русской. И наоборот.
Или, заведомо зная, что в комбобоксе только русский текст (предположим), то искать только в русской раскладке.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.