12 Replies
Phil Mayor

Hi Christina you could always add triggers to the next button trigger, the great thing now is that the previous button trigger is available.

to set these triggers build a trigger, set it to when object clicked and then choose the object, scroll to the top and choose either previous or next button.

For this to work correctly make sure all triggers are above the jump to slide trigger.  This is because triggers fire in order and anything after a jump to slide trigger will not fire

Christina Stephenson

Thanks Phil,

I guess I should have been more specific. I was imagining this meant now we could have the Next button appear only after certain items had been clicked, just like any other item on the slide. I like all the navigation buttons to be in the same place, rather than sometimes on the slide, sometimes off. Since I have quizzes in my course and they include the Submit button in the player, I'd like to keep the Next button on the player also, rather than having to put them on the slide itself.

I hope that made sense...

Christina Stephenson

Hmm...so I thought I had a great idea to set up some conditions. Probably not the simplest way to do this (seemed very tedious), but it made sense in my head. However, when I publish, it's not working. My idea was:

  • Set up a condition so that if a user clicks the Next button AND an item did not equal visited state, they get a message (You must complete)

    • Set up a condition so that if a user clicks the Next button AND all items were visited state, it would advance to next slide

    Any idea what I'm missing? I know it would be simpler...but I'm trying to avoid having to put my own navigation button on the screen. 

    Christina Stephenson

    Oh - silly me! This confirms the value of getting up and walking away for awhile...

    The above conditions DO work, as long as you have your slide linked to another one I was at the end of the scene and it didn't know where to go as my "next slide," hence when I clicked Next, nothing happened.

    If anyone else is wanting to do this...the above method DOES work!

    Darrell Zawada

    Thanks Christina.

    This was helpful, my requirement is not as complicated.

    I just want the Next button disabled until the timeline has finished.

    I have set up a variable to track the timeline finished, set true at start, set false at end; and then use as condition for the next slide trigger. So the user can click and click and click, but won't advance until the timeline finishes.

    I would prefer to just have the Next button disabled until the timeline has finished.

    So my question, "Is there any way to control the state of navigation buttons?"



    Ashley Terwilliger

    Hi Darrell,

    Unfortunately there isn't a way to change the state or hide the buttons. You may want to look at using your own custom buttons on the slide if you'd like to do that, or you could also add an element where if the user clicks the next button and the variable is still true show them a layer popup that they need to view the entire slide first. 

    Ashley Terwilliger

    Hi Darrell, 

    I don't know if that would be included in a future release, although you could use the Storyline SDK to customize your player a bit further. Additionally if you'd like to share you thoughts on accessing these buttons within the built in player, feel free to share your thoughts in the form of a feature request. 

    Bob Wiker


    Here's a workaround that causes a small message to appear when the user prematurely clicks Next. The slide continues playing and there is no user interaction required. Here are the steps, and a screenshot of the important bits:

    1. Set up two random objects on your Base Layer (name them Start, Finish).

    2. Place the objects just offscreen on your slide (lower right is a good spot) so that the learner never actually sees them.

    3. Set their location and duration on your Base Layer's timeline: 'Start' object is at the beginning for 1 second; 'Finish' object is at the end for 1 second.

    4. Create a new variable named SlideFinished whose type is True/False. 

    5. Attach a Trigger to your Start object:  Set SlideFinished equal to false When the timeline starts

    6. Attach a Trigger to your Finish object:  Set SlideFinished equal to true When the timeline starts

    7. Create a new layer named something like Oops or TooSoon.

    8. Set the new layer's properties by clicking its Properties gear/icon. The properties are:

    --don't hide other layers, don't pause timeline of base layer, don't prevent user from clicking on base layer, reset to initial state when revisiting.

    9. Put whatever caption, callout, or object(s) you want to appear when the learner prematurely clicks Next. Put it at the lower right corner, just above your Next/Previous buttons.

    10. Create two Player Triggers:

    --Jump to next slide, When the user clicks the next button, if SlideFinished is equal to True

    --Show layer Oops, When the user clicks the next button, if SlideFinished is equal to False

    The magic is in the two offscreen objects, which are what flip the SlideFinished variable. By positioning the objects on the Base Layer timeline and setting their duration, you cause the variable to flip at the time you want them to. The clause "When the timeline starts" in your Triggers (Steps 5 and 6) more accurately means "When the object appears on the Timeline and its own internal Timeline starts".

    You could have the Oops layer appear for the remainder of the slide once it's displayed, or have it appear for 3-5 seconds and then fade out with an Exit animation. I like NOT having an OK button on my Oops layer; just show the message and then have it fade away without user interaction, all while your slide continues to play.

    I'd be remiss if I didn't give my two cents on the design issue of 'forcing' a learner to watch a slide and preventing them from advancing. Best practice is typically NOT to do this because with asynchonous elearning the learner is in control, not the trainer/author. Putting barriers and blocks in the learners path only serves to frustrate them, which eliminates any chance of learning taking place. You can force learners to wait, and wait, and wait, slide after slide after slide, but you can't force them to actually watch what's playing, so in the end you're still not really forcing anyone to watch anything. It's a false assumption to think you can.