【问题标题】:How to find out the character pressed key in languages?如何找出语言中按下的字符?
【发布时间】:2011-05-31 01:21:28
【问题描述】:

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

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

我已经找到了this question,但是文件上说的是:

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

不正确。

编辑:我正在使用 Flex 4。

【问题讨论】:

    标签: apache-flex events actionscript keyboard flex4


    【解决方案1】:

    我找到了解决办法。

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

    【讨论】:

      【解决方案2】:

      你在找String.fromCharCode()吗?

      【讨论】:

      • 由于 charCode 总是以英文字符返回,所以该函数也返回英文字符。
      【解决方案3】:

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

      【讨论】:

      • 谢谢。然而,没有什么不同。
      猜你喜欢
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2010-11-04
      • 2021-03-30
      • 2014-07-27
      相关资源
      最近更新 更多