2017-09-13 13 views
3

Elmを使って簡単なWebページを作成しようとしています。これには、測定された時間(秒やミリ秒など)の画像が表示されます。エルムでの測定時間を一時停止する方法は?

エルムで「一時停止」する方法はありますか?次に、イメージを表示、一時停止、および削除して、効果を達成することができました。

私はclock exampleに気付きましたが、マシンのクロックが新しい秒をトリガするたびに更新されているように見えますが、開始時間後に設定時間(たとえば1秒)を更新するために一時停止できるものを探しています。

答えて

2

URL(画像の変更)をトリガーする新しいMsg値を作成できます。 Timer.everyで定期購入を作成します。 モデルにフラグを追加して、イメージの更新を維持するかどうかを指定することができます(必要な場合)。

例:

subscriptions : Model -> Sub Msg 
subscriptions model = 
    if model.keepUpdating then 
     Time.every (3 * second) (\x -> UpdateImage) 
    else 
     Sub.none 


update : Msg -> Model -> (Model, Cmd Msg) 
update msg model = 
    case msg of 
     UpdateImage -> 
      ({ model | image_url = "http://to_new_image/..." }, Cmd.none) 
2

elm-delayパッケージには、タイマーの素晴らしい抽象化を提供します。 1秒でトリガーするCmd RemoveImageを作成するには、単にafter 1 second RemoveImageを実行します。

関連する問題