Sto imparando il funzionamento di Elm ma continuo a lottare con i segnali e le pressioni della tastiera. Il codice seguente è un esempio del pacchetto start-app. Mi piacerebbe averlo quando premo la barra spaziatrice che il contatore viene incrementato. Come si fa nell'esempio qui sotto?Come collegare la tastiera premere all'azione
import Html exposing (div, button, text)
import Html.Events exposing (onClick)
import StartApp.Simple as StartApp
main =
StartApp.start { model = model, view = view, update = update }
model = 0
view address model =
div []
[ button [ onClick address Decrement ] [ text "-" ]
, div [] [ text (toString model) ]
, button [ onClick address Increment ] [ text "+" ]
]
type Action = Increment | Decrement
update action model =
case action of
Increment -> model + 1
Decrement -> model - 1
Esattamente quello che stavo cercando, grazie. – Stanko
Ho una domanda aggiuntiva. Come farei questo se volessi incrementare se premo due pulsanti contemporaneamente. Non riesco più a usare 'Keyboard.presses' perché non è possibile controllare se vengono premuti allo stesso tempo. – Stanko
Dai un'occhiata a ['Keyboard.keysDown'] (http://package.elm-lang.org/packages/elm-lang/core/latest/Keyboard#keysDown). Quel segnale ti dà un 'Set' di tutti i tasti al momento. Potresti incorrere in problemi se stai cercando di determinare la pressione di un tasto piuttosto che un tasto tenuto continuamente premuto, ma dal momento che riceverai un nuovo segnale quando uno dei tasti è rilasciato, forse è quello che stai cercando. –