箭头键表示为别的什么? [榆树]

时间:2014-12-17 19:00:00

标签: unicode keyboard elm

这是本主题的后续问题:

Creating custom keyboard controls [Elm]

我正在添加一项允许玩家自定义控件的功能。但箭头键代表自己的方式真的很奇怪。我稍后会谈到这一点。我看起来像这样:

ck2up : Input [KeyCode]
ck2up = input [toCode 'W']

ck2down : Input [KeyCode]
ck2down = input [toCode 'S']

ck2left : Input [KeyCode]
ck2left = input [toCode 'A']

ck2right : Input [KeyCode]
ck2right = input [toCode 'D']

他们从Keyboard.keysDown 接收输入,而我点击按钮。这适用于普通的Char输入,但是当我想使用符号时,我会得到一些奇怪的东西。我想默认给一个玩家箭头键,但由于必须自定义,我不能使用Keyboard.arrows。玩家一将:

ck1up : Input [KeyCode]
ck1up = input [8593]

ck1down : Input [KeyCode]
ck1down = input [8595]

ck1left : Input [KeyCode]
ck1left = input [8592]

ck1right : Input [KeyCode]
ck1right = input [8594]

这取自http://character-code.com/arrows-html-codes.php。这些是箭头键的html代码。我在按钮上显示当前按键,箭头显示正确:

(button ck1up.handle kd (append "up: " (fromList [fromCode pkeys1.up])))

pkeys1.up包含密钥代码。但是,箭头键没有响应。这是预期的,因为html是为布局而制作的,但是当我尝试使用unicode时,如http://library.elm-lang.org/catalog/elm-lang-Elm/0.13/Char toCodefromCode所述,关键字游戏仍无效得到一个错误图标,我期望按钮上的箭头符号。这可能是因为unicode是十六进制的。

但是!我可以使用我新获得的功能,通过在按下按钮的同时按住键来自定义控件。这确实使我的箭头键工作,但它显示以下符号:

up: &
down: (
left: %
right: '

这意味着使我的箭头键正常工作的同一个unicode正在显示这些随机符号。这不是很奇怪吗?如果有人知道我在哪里可以找到Elm使用的unicode值,那就太好了。如果没有输入密钥,我想将箭头键设置为默认值。是否有任何东西可以将这些unicode转换为html,以便正确显示?

如果重要,我仍然使用Elm版本13.

更新

所以我发现KeyCodes 38,40,37和39分别对应箭头字符(显示符号对应于这些相同的值,但是在html中)。

1 个答案:

答案 0 :(得分:2)

正如您已经知道的那样,关键代码37-40是您需要的。这些也可以在the source code of Keyboard.arrows中找到。

KeyCode不仅仅是一些随机名称,而且还提到了JavaScripts正在使用的密钥代码。我无法通过ECMAScript文档中的快速搜索找到定义,其他互联网资源表明浏览器在使用密钥代码时并不总是兼容。所以这是你的标准网络编程混乱,慢慢地处理。尽管如此,这可以说是糟糕的设计,最好继续在邮件列表上进行讨论。