榆树:两个键盘键的信号在一起?

时间:2015-11-20 17:33:10

标签: elm

如何为 alt + o 或Elm中的任何其他键对创建信号?

是否有内置的方法可以做到这一点,还是我必须自己创建一些东西?

我对榆树很新,所以任何额外的解释总是受欢迎的。

2 个答案:

答案 0 :(得分:5)

我自己想通了:

Signal.map2 (&&) Keyboard.alt (Keyboard.isDown <| Char.toCode 'O')

这会创建一个Signal Bool,当两者都关闭时为真,否则为假。

答案 1 :(得分:2)

是的,elm中有一种内置方式来处理键盘输入

模块是keyboard.elm

从我的理解到能够使用它你必须

import keyboard
import Signal exposing ((<~))

keysDown 函数创建一个信号,通知当前正在按下哪些键

import Keyboard
import Signal exposing ((<~))
import Graphics.Element exposing (show)


main = show <~ Keyboard.keysDown

isDown 函数将关键代码作为其参数,并返回一个布尔信号,指示当前是否按下了给定的键。对于某些特殊键,还有 isDown 定义的辅助函数: shift ctrl space 和< EM>输入

import Char
import Graphics.Element exposing (show)
import Keyboard
import Signal exposing ((<~))


main = show <~ Keyboard.isDown (Char.toCode 'A')