Как узнать символ нажатой клавиши на языках? - PullRequest
3 голосов
/ 27 декабря 2010

Я не могу использовать charCode или keyCode в KeyboardEvent, чтобы обнаружить нажатый символ, потому что даже если я изменю раскладку клавиатуры, charCode и keyCode не изменятся (при нажатии той же клавиши).

Итак, как найти нажатый символ, следуя текущей раскладке клавиатуры?

Я уже нашел этот вопрос , но в документе говорится:

Свойство charCode является числовым значение этого ключа в текущем набор символов (символ по умолчанию установлен UTF-8, который поддерживает ASCII).

неверно.

Редактировать: я использую Flex 4.

Ответы [ 3 ]

3 голосов
/ 31 марта 2011

Я нашел решение.

Мы можем слушать TextEvent. Это событие отправляет не только текстовые компоненты, но и все целевые компоненты, которые реализуют UIComponent.

Например:

package champjss
{
    import flash.events.TextEvent;
    import mx.core.UIComponent;

    public class EditorComponent extends UIComponent
    {
        public function EditorComponent()
        {
            super();

            addEventListener(TextEvent.TEXT_INPUT, handleTextEvent);
            setFocus();
        }

        protected function handleTextEvent(event:TextEvent):void
        {
            // This text the text that user types,
            // following to current keyboard layout ;)

            trace(event.text);
        }
    }
}
1 голос
/ 27 декабря 2010

Вы ищете String.fromCharCode () ?

1 голос
/ 27 декабря 2010

значения keyCode зависят от локали.Я считаю, что различные макеты будут использовать один и тот же код ключа для одних и тех же ключей.Это не клавиатура, которая определяет коды клавиш, это настройка локали на компьютере.Надеюсь, это поможет.

...