Storyline- Next button to become available after visiting another slide
Jul 24, 2015
Hi everyone,
Long shot I know...
We currently have a set of slides in storyline. What i want to happen is that the Next button on the main slide (which has boxes linking off to other slides), to only become available (or "normal" state) when all of those slides have been visited. All of the slides that link from the original main slide, have had their previous/next button de-activated and I have put in a link to jump back to the main slide, and set it up so that the links on the main page become "visited" state when clicked.
Once all 4 boxes are linked as visited, the next button becomes available. However the functionality isnt working. Its really frustrating me. Because I am sure there is a way around this and I am missing something obvious. When clicking the 4th button, i see it briefly come to Next and then it transitions off to the link, but when returning to the main page, its no long available.
I have even set the main slide layer to Resume to Saved State when re visiting. This hasnt made any difference.
Can anyone please shed some light on this? Virtual chocolates on offer!! :)
22 Replies
Hi Sachin,
I have struggled with that in the past. I have attached a file for you to review. It replicates your situation with a solution. You would assume that if you check the state of the buttons and then enable to "Next" button, that would work. It doesn't. The workaround is to create graphics placed off the screen and have them change state based on clicking the buttons on screen.
In my example, each button has two triggers. The first trigger is to change the state of the graphic off the screen ("Smiley Face 1"). Then the next trigger jumps to slide 1. The trigger on the "Menu" screen states Change the state of Next Button to Normal when the state of Smiley Face 1 through 4 are normal (Initial state for those was hidden).
I know it doesn't seem to be any different than checking the states of the buttons on screen, but for some reason this approach works.
Cheers.
Mike G
Hi Sachin! Looks like Mike has jumped in to assist :) If you need anything further or need someone to take a look at your .story file, please feel free to share it here.
Thanm you so much Mike! I think I am going to try this as it seems to work a bit better than what I have done.
I actually ended up going around it in a different way but similar process. On the main page, I have created a variable. The variable is set to 0. When you click the back button on the linked page, It adds 1 to the variable each time. Once the variable reaches 6, there is a trigger that says, change the state of the next button to available when the variable is equal to or greater than 6.
Thanks so much for your example! :)
Thanks for the update Sachin and for sharing your solution :)
These aren't working. My stakeholder doesn't want a fourth layer. They just want the next button to be disabled until all three layers are visited.
Hi Kendra,
I know we've talked before with ways in which you can disable and enable the next button - and as there are a number of examples you may want to take a look at and play around with the example posted here. The first one here includes 2 layers - so you'd just need to create the third.
The logic of why this doesn't work escapes me. I have one main slides that has buttons taking it to 5 other slides. Each of these return the user to that main slide again. I don't want the user to be able to click Next on the main slide until they have visited each of the 5 other slides. I've set up two triggers on the main slide (in this order):
1. Disable the Next button when the timeline starts
2. Change the state of the Next button to normal when the states of all 5 of my buttons are "Visited".
I can see the state of the Next button change to normal on the main slide when I click the last of the 5 buttons. But when I return to the main slide from that last slide, it has reverted back to disabled again.
I have discovered that if I add a third trigger to the main slide, it works. I put this one between the above 2 so basically, this trigger is cancelling out the first one once all 5 slides have been visited.
2. Change the state of the Next button to enabled when the timeline starts with the following conditions (followed by conditions for all buttons' (AND) state being "visited".
It's almost like that original trigger that I set up as trigger 2 is only applied once... when the last button's state turns to "visited". And then after that, the trigger is ignored when you revisit the slide.
At any rate, I got it to work. I just don't understand why it took that extra trigger.
Hi Jill - Great question and it is confusing, so let's see if I can explain.
When visiting the slide again, the timeline is re-starting, even with the saved states. So, when you have a trigger to change the state of the Next button when the other buttons are visited, it happens in the same instant you are viewing your other slide/layer. When you go back to that slide, the timeline starts - which goes back to your disable the next button trigger. Now, variables cross slides and are not dependent on being ON that slide when they happen.
Your third trigger to have the conditions attached is what is really working here.
Way to get that figured out though :) Hope I didn't confuse you more.
It could be that your 'revisit' slide option is set to 'reset to initial state' instead of resume saved state?
As soon as you click a button it changes state to visited so your latest trigger when timeline starts with condition of states = visited is the better way to go. I don't like using the built in visited state as the user can see it change as soon as they click the button - I normally create a new state called 'completed' and delete the visited state and use 'completed' in my triggers.
Thank you! I just had to do this and it works great :)
Hey Robbin,
Glad this older thread was able to help you out here :) Thanks for popping in to share.
Thank you so much I have been struggling for 2 days trying to figure out why this was not working!! Your solution worked perfectly.
Thank you for that insight that does make me see why it must have the extra trigger.
So glad that this conversation was able to help you out as well Hillary. I love seeing when these older conversations are able to keep assisting others.
Welcome to E-Learning Heroes!
Marge, this was such a relief to read. Thank you!
I have struggled with this idea. My problem with the "Visited" usage is that, won't it trigger at the start of the last slide's playback? This means that the last bit of content they need to see might be bypassed.
To get around this, I set up individual variables per slide to check/set each slide's Next button status. If there are multiple layers on a single slide, I set up a group of temporary variables to track playback on these, then check at the end of each layer's timelines for slide completion.
This can lead to a glut of variables, which is undesirable and also might lead to storage issues if you are using SCORM 1.2 rather than SCORM 2004 or above. Thankfully, this can handled using JavaScript. I may post an example of using JS to handle this problem. Have to go to a meeting right now though :).
Thank you Mark, this helped.
I understand how to setup Next buttons to disable, then the timeline starts. I set up a trigger on the master slide so I don't have to add it on every slide. My problem is that I want it be active when slide is revisited. What triggers should I add?
Thanks, Marge! Very helpful. I believe I did something slightly different.
See attached images if anyone needs a visual.
1.
2. I noticed that even with the triggers in #1, I still needed these triggers in #2.
I am SO glad I found this four years later!!! I encountered the exact same issue and used your solution. Perfect!!!
I can only say this is so confusing. The simplest of tasks cannot be managed easily. I spend hours searching for resolutions to simple issues, to no avail. I have a slide that has three options. The next button is to be hidden until all three are visited, but that never happens because each time I return to the main slide the time line starts fresh. so I am stuck in a loop. Storyline is not intuitive at all. Not a developer friendly product. Just my opinion.
Good call coming here and asking for help. You can almost always tap into some valuable experience.
A sample that shows a variety of methods of doing what you describe can be found at this post:
https://community.articulate.com/discussions/articulate-storyline/free-sample-restricted-and-free-random-navigation-using-variables-and-triggers
There is another one here:
https://community.articulate.com/discussions/articulate-storyline/visited-state-issues