【发布时间】:2009-06-18 19:44:28
【问题描述】:
注意请记住 key 代码和 character 代码之间的区别。例如,数字 1(一)和字符 ! (bang) 两者都有相同的 key 代码但不同的 character 代码。同样,数字行中的数字 7 和小键盘中的数字 7 具有不同的 key 代码,但具有相同的 字符 代码。
我正在用 Adobe Flex 编写一个音乐节奏游戏,并且想绑定键盘按键。这不是问题,但我肯定会遇到问题,例如,将默认键设置为 A、S、D 和 F 并告诉用户是这种情况。
如果您查看flash.ui.Keyboard 的文档,您会发现键盘键与键码之间存在常量。但是,这些仅在 Adobe AIR 中可用,在浏览器中不可用。这是有道理的,因为并非所有操作系统和键盘都相同(或存在!),因此键码可能会有所不同。
那么,我怎样才能分配有意义的默认键而不是选择键码和祈祷呢?
我唯一理智的想法是存储键绑定的字符代码,然后提供一个字符代码到字符串映射,这样我就可以告诉用户要按什么。 但是,我的直觉告诉我,这会以微妙或不那么微妙的方式破坏。就像 CAPSLOCK。
谢谢。
更新:我目前正在使用radekg's 答案,但我仍然认为这很容易中断。如果有人认为这是正确的,我会觉得更舒服。
【问题讨论】:
标签: apache-flex flash browser user-interface keyboard