Creating Conditions for advancement & Delayed changes to button states

Mar 16, 2015

Hi all,

I've been working on a teaching module and found you all so helpful the last time I had a question that I thought I would ask you again. This time I actually have 2 questions:

1) Is there a way to prevent someone from advancing to the next slide until they have revealed all (or a subset) of layers? I have these diagrams of the human body and when you hover over the certain areas, layers appear that tell you more about that particular body part/system. I want to make sure that the students are getting everything to appear before they move on. Is there a way to prevent them from clicking the next button if some of the layers are still hidden?

2) I have a sort of "Table of Contents" page at the beginning which has  shortcuts to all of the different sections which are buttons that say "Case 1," "Case 2," etc. until the student has clicked on them, at which time they change to "More interesting text" that is related to the topic they are learning about. The problem is that the name changes just slightly before it takes them to the next slide. I don't want that to happen because that gives away the answers to some questions they have to answer after they click on the button. Is there a way to make that change not occur until after the user returns to the slide?

 

15 Replies
Chris Cole

Hi Holly -

The good news is there's not A way to prevent someone from advancing, there are a LOT of ways.  :-)   It sounds like the learner can hover over the areas in any order they choose, so that imposes one limitation on us, so the best approach might be to set a variable each time the learner hovers over an object.

  • For each object, create a corresponding variable with a default value of false. If one of the objects is a picture named "heart", have a variable named something like "heartHasBeenViewed".
  • Add a trigger for each object to set the  appropriate variable to true when the object is hovered over. Alternatively you could put the triggers to set the variables to true in the layers that you show (when timeline starts, set variable X to true), instead of in the objects that are hovered over.
  • In your player triggers, for the Jump to Next Slide trigger, add a condition that says Jump to Next Slide if variable X = true AND variable Y = true et cetera. Alternatively, you could disable the Next button at the start of the slide, and then enable it when all of the variables = true. This might be a little messier, as you would have to keep checking the value of the variables each time a variable changes and so might need a slew of triggers at different places to do that. The first option would be a bit easier to implement.

Hope this helps.

Chris

 

Holly Cooper

Ashley and Cole,

For the second issue, I had initially been using the "visited" state for my buttons without a trigger. I actually followed Chris's suggestion and made a trigger for change of state, putting it second, after jump to slide. It worked brilliantly for the "Case 1" and "Case 2" buttons but for the remaining 7, the words on the button still changed before it navigated to the appropriate slide. I made sure that everything was the same with all the buttons so I can't explain why those are behaving differently. On returning to the slide, everything looked right and the buttons that had been clicked (including 1 & 2) had the more interesting text. Any other suggestions?

Working on 1st issue now. Will let you know how that goes.

Thanks!

Holly

Chris Cole

Hi Holly.

Regarding your second issue, you said "It worked brilliantly for the "Case 1" and "Case 2" buttons but for the remaining 7, the words on the button still changed before it navigated to the appropriate slide. I made sure that everything was the same with all the buttons so I can't explain why those are behaving differently. "

Yes... that is an issue. A few weeks ago some of us worked through this same thing with someone else. Unfortunately I don't think there is anything that can be done with it. Here is the thread where we were discussing it:

https://community.articulate.com/discussions/articulate-storyline/problem-with-trigger-for-visited-state

Sorry.

Chris

Chris Cole

But here is another approach for issue 2 which will work ok I think. More variables... :-)

  • create a true/false variable for each case slide that you have. For example, case1_been_visted, with the initial value of false.
  • On each Case slide (1.7 Case 1, for example), put a trigger that sets the appropriate variable to true. For example ,set case_1_been_visited to true when the timeline starts.
  • On your Menu slide, put slide triggers for each menu button that changes the button to Visited when the appropriate variable is true. So... Change state of Case 1 button to Visited when the timeline starts if case1_been_visited = true.

This works because when the learner returns to the menu slide, even though the menu slide doesn't replay (you have Resume Saved State turned on), Storyline still triggers a timeline start event, so the slide trigger will change the state of the menu button when they return to the menu page. If you are using Resume, then the state of the buttons should stay the same as well if the learner leaves the lesson and then resumes at a later time.

Chris

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