2017-09-13 19 views
3

Elm을 사용하여 초당 또는 밀리 초와 같은 측정 된 시간 동안 이미지를 표시하는 간단한 웹 페이지를 만들려고합니다.느릅 나무에서 측정 된 시간 동안 일시 중지하는 방법?

느릅 나무에서 "일시 중지"할 수있는 방법이 있습니까? 그런 다음 이미지를 표시하고 일시 중지 한 다음 이미지를 제거하여 효과를 얻을 수있었습니다.

나는 clock example을 발견했는데 컴퓨터의 클럭이 새로운 초를 트리거 할 때마다 업데이트되는 것으로 나타 났지만 시작 시간 이후에 설정 시간 (예 : 초 단위)을 업데이트하기 위해 일시 ​​중지 할 수있는 것을 찾고있었습니다 .

답변

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을 사용하면됩니다.