Oh!  You need to add the animation subscription as well.

Sub.batch this with your current subscriptions

subscriptions : Model -> Sub Msgsubscriptions model =
    Animation.subscription Animate [ model.storyTextStyle ]


On Tuesday, October 4, 2016 at 9:28:25 AM UTC-4, Rex van der Spuy wrote:
>
> Thanks Mathew!!
> I've added your code suggestion, but so far no luck yet (FadeInOut is 
> called, but not SendStoryComponents)
>
> If anyone wants to take a look at the current Main.elm file where all this 
> code is running, it's here:
>
> https://gist.github.com/kittykatattack/f05b42efc6ecf09ddf244bbafd18edb3
>
>
> On Monday, October 3, 2016 at 5:24:43 PM UTC-4, Matthew Griffith wrote:
>>
>> In your `Animate animMsg` area, you're not returning the cmds, which is 
>> how the msg is fired :).
>>
>> Change your code to this:
>>
>> Animate animMsg ->
>>       let 
>>         (newStyle, cmds) = 
>>           Animation.Messenger.update
>>             animMsg
>>             model.storyTextStyle
>>       in
>>      ( { model
>>             | storyTextStyle = newStyle
>>        }
>>      , cmds
>>     )
>>
>>
>>
>> On Monday, October 3, 2016 at 2:09:57 PM UTC-4, Rex van der Spuy wrote:
>>>
>>> Thanks everyone, I like these ideas!
>>>
>>> Here's what I've got so far - but it's not working... yet! :) 
>>> Could any of you with more experience with elm-style-animation let me 
>>> know what I'm doing wrong?
>>>
>>> I've imported Animation and Animation.Messener, exposing State:
>>>
>>> ```
>>> import Animation
>>> import Animation.Messenger exposing (State)
>>> ```
>>>
>>> I created a style for my text called `storyTextStyle`
>>>
>>> ```
>>>  , storyTextStyle : Animation.Messenger.State Msg
>>>
>>> , storyTextStyle = 
>>>       Animation.style
>>>         [ Animation.opacity 1.0
>>>         ]
>>>
>>> ```
>>> I added it to the view, which displays my story output text
>>>
>>> ```
>>> div [ storyCardStyle ] 
>>>             [ p ( Animation.render model.storyTextStyle ++ [ 
>>> storyParagraphStyle ]) [ text model.storyOutput ] ]
>>> ```
>>>
>>> I have an MDL button that triggers a `FadeInOut` update message:
>>>
>>> ```
>>> , Button.onClick FadeInOut
>>> ```
>>>
>>> The `FadeInOut` message and `Animate` message are in the `update` 
>>> function:
>>>
>>> ``` 
>>> Animate animMsg ->
>>>       let 
>>>         (newStyle, cmds) = 
>>>           Animation.Messenger.update
>>>             animMsg
>>>             model.storyTextStyle
>>>       in
>>>      { model
>>>          | storyTextStyle = newStyle
>>>      }
>>>      ! [ ]
>>>
>>>     FadeInOut -> 
>>>       let
>>>         newStyle =
>>>           Animation.interrupt
>>>             [ Animation.to [Animation.opacity 0]
>>>             , Animation.Messenger.send SendStoryComponents
>>>             , Animation.to [Animation.opacity 1]
>>>             ]
>>>             model.storyTextStyle
>>>       in
>>>       { model
>>>           | storyTextStyle = newStyle
>>>       }
>>>       ! [ ]
>>> ```
>>>
>>> ... all this compiles and I've tested `FadeInOut` with Debug.crash to 
>>> make sure it's called - and it is definitely being called when I click the 
>>> button.
>>> But, my `SendStoryComponents`, which generates the new text to fade is, 
>>> is never called.
>>> Here's `SendStoryComponents` (it uses a port that does some fun stuff 
>>> with nlp-compromise.js to generate a random story based on user input and 
>>> story templates)
>>>
>>> ```
>>> SendStoryComponents ->
>>>       let
>>>         words = 
>>>           model.words
>>>
>>>         toList string =
>>>           String.Extra.clean string
>>>           |> String.split " "
>>>
>>>
>>>         words' =
>>>           { places = toList model.places 
>>>           , livingThings = toList model.livingThings
>>>           , objects = toList model.objects
>>>           , actions = toList model.actions
>>>           , moods = toList model.moods
>>>           }
>>>
>>>         model' =
>>>           { model 
>>>               | words = words'
>>>           }
>>>       in
>>>       (model', sendStoryComponents(model'.words, StoryTemplates.stories))
>>> ```
>>> (`SendStoryComponents` does work, if I don't call it through the 
>>> `FadeInOut` message.)
>>>
>>> Can anyone tell by looking at that why `Animation.Messenger.send` might 
>>> not be calling `SendStoryComponents` ?
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to