You need to create a true/false variable and call it say slidEnd with a default value of false.
Next, on the base slide you add a trigger. "Change value of variable slidEnd to true when timeline ends.
You edit the trigger on the next button by adding a condition " If variable slidEnd == true"
#This would make button active only when the value of the variable is true and the value of the variable can only be true when timeline ends and by then it is assumed that all animations and content on the slide have been seen#
In addition, you can create a layer for an error message and label it error or something. On this layer, you put an error message informing the learner to make sure the timeline is completed before clicking next button - This would let the learner know that the button is actually working but currently not active because (s)he has not completed the slide.
Then on the base slide you put another trigger on the next button
Show layer Error, When user clicks next button, if variable slidEnd != true.
Create a trigger to change the state of NEXT to disabled when the timeline starts.
Create a trigger to change the state of NEXT to normal when the timeline ends.
If it's likely that users will revist the slide, but you don't want them to have to wait for the timeline to end before advancing again, try this:
Create a T/F variable with its initial value set to False.
For the first trigger mentioned above, add a condition to disable NEXT only if the variable is False.
Add another trigger to adjust the variable to True when the timeline ends. (This will prevent NEXT from being disabled when the user revisits the slide.)
By the way, if some of the animation is on a layer, you can add the change-NEXT-to-normal and adjust-variable-to-True triggers to the final layer.
This also works if you want the user to click buttons before advancing. In that case, instead of enabling NEXT and adjusting the variable when the timeline ends, have SL do those actions when all of the buttons are in the Visited state.
4 Replies
Hi Tali,
slidEnd
with a default value offalse
.Change value of variable slidEnd to true when timeline ends
.If variable slidEnd == true
"#This would make button active only when the value of the variable is true and the value of the variable can only be true when timeline ends and by then it is assumed that all animations and content on the slide have been seen#
In addition, you can create a layer for an error message and label it error or something. On this layer, you put an error message informing the learner to make sure the timeline is completed before clicking next button - This would let the learner know that the button is actually working but currently not active because (s)he has not completed the slide.
Then on the base slide you put another trigger on the next button
Show layer Error, When user clicks next button, if variable slidEnd != true.
I hope this helps.
-Ademola
Hi, Tali,
Here's what I do:
If it's likely that users will revist the slide, but you don't want them to have to wait for the timeline to end before advancing again, try this:
By the way, if some of the animation is on a layer, you can add the change-NEXT-to-normal and adjust-variable-to-True triggers to the final layer.
This also works if you want the user to click buttons before advancing. In that case, instead of enabling NEXT and adjusting the variable when the timeline ends, have SL do those actions when all of the buttons are in the Visited state.
Hi Tali! Looks like you are getting some fantastic assistance here. I just wanted to pop in and welcome you to E-Learning Heroes.
Thanks a mill!
Judy, your advice was very helpful :-)
Best,
Tali
This discussion is closed. You can start a new discussion or contact Articulate Support.