我尝试合并两个信号。一个是 Mouse.clicks,另一个是 Keyboard.space。
- 点击时,我应该从 Mouse.position 获得 Signal(Int,Int) 作为返回值
- 在太空上,我应该得到一些不同的东西,这样我就可以识别不同的信号被触发了。
我的想法是:
type Event = Click | Space
mergedSignal : Signal Event
mergedSignal =
let
clickSignal = map (\event -> Click) Mouse.clicks
timeoutSignal = map (\event -> Space) Keyboard.space
in
merge clickSignal timeoutSignal
并以某种方式获得位置:
positionOnClickSignal:Signal (Int,Int)
positionOnClickSignal = sampleOn Mouse.clicks Mouse.position
显然,这是错误的。