Slide Navigation

Jan 25, 2018

I have a slide with 4 layers.  For each layer I use a button to trigger the layer to show when clicked.  I have the previous and next buttons turned on in the player.  For this slide I don't want the previous and next buttons to show until the user views all of the layers.  I created 2 triggers for the previous and next buttons.  One trigger to hide the previous and next buttons until all 4 layers are completed.  The other trigger to change the previous and next buttons to normal when all 4 layers are completed.  Help, it's not working.  I attached pictures of the triggers for the next button.

2 Replies
Walt Hamilton

As you found out, it is never a good idea to use "When state of ... is ..." in the "when" part of a trigger. Sometimes it works, but it is never predictable. Think about it this way: "state is" is a condition, not an action. Since there is no action, there is nothing to tell the trigger to fire. The times those triggers work, they are on the receiving end of an elaborate, confusing, and largely serendipitous combination of the right phase of the moon, the designer writing the trigger when they were holding their mouth just right, and a fortuitous accident of cpu timing. It's not your fault your triggers don't work, the programmers should never have put them in the "when" section of the trigger wizard. They should be put in the condition section, where they function correctly. "Do this when this action occurs, IF state of... is ..." It makes sense, because they are conditions.

I suggest you change the first trigger to change state of NEXT when timeline (of the slide) starts.

I suggest you delete the second trigger, and place it on each layer. Use what ever action hides the layer, and add this trigger:

Change the state of NEXT to normal WHEN (user clicks, or whatever hides the layer) IF state of Button 1 is visited AND state of Button 2 is visited AND state of Button 3 is visited AND state of Button 4 is visited 

I know, it is more work than just checking the boxes, but this way actually works. you can use "completed" for your state if you want to, or you can use "visited"

Advantages of "completed": if you use a variable to track the state, and a trigger that sets the state when the timeline starts, depending on the variable, then when you return to the slide, the states will always be accurate. They might not be if you use "visited", especially if you restore the slide to its initial condition.

Advantages of "visited": You don't need to create variables and triggers; you can just create a visited state, and it will come with all the trigger actions as part of it. As long as you are visiting layers on the same slide, "visited" states work reliably. They don't if you need to return the learner to the slide later.

Any questions, come back and ask.

This discussion is closed. You can start a new discussion or contact Articulate Support.