When variable changes

I am trying to ensure my course is user proof and one of the things I am wanting to ensure is that a number of boxes on one screen are all completed.

I have done this by hiding the next page button and then adding a variable every time a variable changes in the textbox the count increases by one. When it gets to seven then the next page button appears.

This works but the problem is that if the user just clicks on the box it still increases the count which defeats the object.

Is there a better way to do this rather than the variable changes command?

Any help greatly appreciated.





3 Replies
Walt Hamilton

Don't add to the count. Every time a desirable activity occurs, check all the boxes to see if they are in the target state, and use that to count them. That way nothing gets counted twice.

Another option is to use the principles in the sample story here: https://community.articulate.com/discussions/articulate-storyline/free-sample-restricted-and-free-random-navigation-using-variables-and-triggers

The restricted navigation is what you are looking for.

Sally Wiedenbeck

I have done this by adding a condition to the counting variable trigger, so it only counts if the item was not in the visited state.

So when user clicks box X, two triggers happen:
1 - Increase the count variable by 1 IF box X state is not equal to visited
2 - Change state of box X to visited

You need to set these two triggers for each object the user interacts with on the page.

Since storyline completes the triggers in order, make sure the increase the variable count trigger is before the state change variable in the trigger order, or else it will not increase the count the first time either.

Ned Whiteley

Hi Sally,

You shouldn't need the second trigger to change box X to visited as the Visited state is one of Storyline's built-in states and so this action will occur automatically in the background once the box has been selected.

If you temporarily disable your second trigger, you should find that your counter still works as intended.