如何找出语言中按下的字符?

发布于 2024-10-09 10:32:48 字数 389 浏览 6 评论 0原文

我无法在 KeyboardEvent 中使用 charCode 或 keyCode 来找出按下的字符,因为即使我更改键盘布局,charCode 和 keyCode 也不会改变(如果按相同的键)。

那么,如何根据当前的键盘布局找到按下的字符呢?

我已经找到了这个问题,但是文档说的是:

charCode 属性是数字 当前该键的值 字符集(默认字符 设置为UTF-8,支持ASCII)。

是不正确的。

编辑:我正在使用 Flex 4。

I can't use charCode, or keyCode in KeyboardEvent to find out the character pressed, because even if I change the keyboard layout, charCode and keyCode are not change (if press the same key).

So, how to find the presssed character, following to the current keyboard layout?

I already found this question, but what the document said:

The charCode property is the numeric
value of that key in the current
character set (the default character
set is UTF-8, which supports ASCII).

is not correct.

Edit: I am using Flex 4.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

自由如风 2024-10-16 10:32:48

我找到了解决方案。

我们可以监听 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);
        }
    }
}

I found the solution.

We can listen for TextEvent. This event not only dispatches to text components, but also all focused components that implement UIComponent.

For example:

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);
        }
    }
}
尽揽少女心 2024-10-16 10:32:48

keyCode 值取决于区域设置。我相信不同的布局将共享相同按键的相同 keyCode。决定键码的不是键盘,而是计算机上的区域设置。我希望这有帮助。

keyCode values are locale dependent. I believe various layouts will share the same keyCode for the same keys. It's not the keyboard that determines the keycodes, it is the locale setting on the computer. I hope this helps.

决绝 2024-10-16 10:32:48

您是否在寻找 String.fromCharCode()

Are you looking for String.fromCharCode()?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文