我嘗試合併兩個信號。一個是Mouse.clicks,另一個是Keyboard.space。如何合併Elm中的SampleOn的兩個信號
- 的點擊,我應該得到Mouse.position的信號(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
很顯然,這是錯誤的。