Triggering Functions at the end of a Timeline
Jan 11, 2017
I was working on an 8-button menu on a slide. These "buttons" actually consisted of the buttons themselves, a completed indicator for each button, and an invisible cover for each. [I realize I could have built the buttons to include the indicators, and dealt with the enabled/disabled part that way. I had other reasons to build it the way I did.] The buttons had to be addressed in order, 1-8. Finish the first one, and then the second one becomes live, etc.
The buttons linked out to a single viewable slide each. When completed, the view slide set a variable indicating that the slide had been viewed. When coming back to the menu, I had layers of triggers that would dynamically:
set the completed indicator, and
uncover the next button in the group.
The one issue I thought might be an issue was this: the menu slide was not static, it worked a double-duty: it had a built-in set of reveals for each button as the voice-over gave instructions to the user. And, at the end of the menu's timeline, I had triggers showing these multi-trigger layers (not unlike calling functions) that would set the completed setting per button, and uncover the next button in the group that became active.
The issue that might be a problem was this: on each of the viewable slides, the Prev button linked back to the menu, so that the layers could be shown, and the updates to the UI would occur. But my menu slide had all those reveals built in, and I really didn't want to show them every time a user goes back to the menu.
So I set the menu slide itself up so that, when revisiting, it was set to "Resume saved state". As I understood this functionality, I assumed that it "froze" the timeline in the last frame. I was afraid that, because it was at the end of the timeline, my triggers to show the two dynamic layers would never fire.
But they did fire! The function layers fired off, and the UI updated successfully. Which means my double-duty slide was fine.
It got me to thinking about the scheduling of how triggers fire. Triggers tied to particular events fire from top to bottom in the trigger list. Since the trigger showing the layers always (eventually) fires when the slide is shown, this means that there is an actual timeline-ending event [which is not named as such, but functions as such.] And since the triggers fire at the end of the timeline, they will always update the UI correctly.