使屏幕上的按钮信号像键盘信号一样

Make on-screen button signal act like Keyboard signals

核心Keyboard信号,例如Keyboard.space,当给定键被按下时是True,否则是False。我想从屏幕上的按钮发出相同的信号 属性。

我有一个按钮可以将 Bool 发送到邮箱,但它始终保持 True 除非我发送另一条消息,但我找不到一个干净的方法来做到这一点在我使用信号中的值之后,如果我决定稍后从同一个邮箱读取多个函数,那么不必担心会很好。

我认为 Signal.foldp 可能有解决此问题的方法,但如果是这样,我找不到类似的好例子。最方便的是,如果有一个带有签名 Signal Bool -> Signal Bool 的函数,它将信号转换为在每个 True 发送后发送 False 的信号。

您可以使用类似的东西:

Signal.dropRepeats <| Time.since Time.millisecond <| yourMailbox.signal

但建议使用 Elm 架构,只考虑 Actions 而不是降到这么低的级别。