【发布时间】:2015-11-20 17:33:10
【问题描述】:
如何为 alt+o 或 Elm 中的任何其他键对创建信号?
有没有内置的方法可以做到这一点,还是我必须自己创造一些东西?
我对 Elm 很陌生,所以欢迎任何额外的解释。
【问题讨论】:
标签: elm
如何为 alt+o 或 Elm 中的任何其他键对创建信号?
有没有内置的方法可以做到这一点,还是我必须自己创造一些东西?
我对 Elm 很陌生,所以欢迎任何额外的解释。
【问题讨论】:
标签: elm
我自己想通了:
Signal.map2 (&&) Keyboard.alt (Keyboard.isDown <| Char.toCode 'O')
这会创建一个Signal Bool,当两者都关闭时为真,否则为假。
【讨论】:
是的,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 和 输入。
import Char
import Graphics.Element exposing (show)
import Keyboard
import Signal exposing ((<~))
main = show <~ Keyboard.isDown (Char.toCode 'A')
【讨论】:
<~ 运算符已从与该版本对应的核心库版本中删除。也许将您的代码 sn-ps 更改为使用 Signal.map 是个好主意。