Forum Discussion

JudyNollet's avatar
19 hours ago

The Top 3 Most Common Storyline Mistakes

I've read and answered lots of questions about Storyline here in the Articulate community. In many cases, the ultimate problem is one of the following common mistakes

 

Common Mistake 1. 
Using a "when the timeline starts on this slide" trigger without any conditions

The most common situation I've seen with this mistake is someone disabling the Next button when the timeline starts. Another trigger enables Next after an interaction, but the person wonders why Next is disabled again when the user revisits the slide.

"When the timeline starts on this slide" really means "whenever the user jumps to this slide." In other words, such a trigger will perform its action every time the user visits the slide. That's true even when the Slide Properties are set to "Resume saved state."

The way to prevent the action is to add at least one condition to the trigger. For example, add conditions that check the state of buttons in an interaction. Or check the value of a variable.

 

Common Mistake 2.
Adding a trigger after a "jump to" trigger

Triggers run in order. However, a trigger can't run if the user has already gone to another slide. Thus, when a set of triggers run based on the same action, any "jump to" trigger needs to be the last one in the set.

Here's a situation where this problem often occurs. New slides automatically have a trigger for the Next button to jump to the next slide. Suppose you want the Next button to also do something else, such as change a variable to True. If you add that trigger, its default position will be after the "jump to" trigger. To ensure it will run, simply move it before the "jump to" trigger.

 

Common Mistake 3.
Referring to the wrong object in a trigger

It's easy to select the wrong object—or variable or animation—when adding a trigger. This is especially easy to do and easy to overlook if the items have their default names. For example, you might not notice that a trigger refers to "Rectangle 5" when it should refer to "Rectangle 6." Or that a trigger refers to an object on a layer instead of the same- or similarly-named object on the base.

Programming and troubleshooting will be much simpler if you take the time to give interactive items meaningful names.

 

Resources

In case you're interested, here are some related webinars:

 

And you can find all of my webinars, primers, and tips here.

3 Replies

  • ronald-hicks's avatar
    ronald-hicks
    Community Member

    Solid list, Judy. I'd nominate a JavaScript-flavored version of #1:

     

    An "Execute JavaScript" trigger set to run "when the timeline starts" also fires on every revisit — and with JS there's no visible cue in the trigger list that it ran twice. The classic casualty is a celebration or timer script: confetti that re-bursts every time the learner revisits the slide, or a variable getting re-initialized after the learner already earned progress.

     

    The fix is the same as your #1: gate the trigger with a condition (e.g., only if CelebrationShown is False), and flip that variable inside the script itself via player.SetVar so it can never double-fire.

  • JoeFrancis's avatar
    JoeFrancis
    Community Member

    As a long-time coder in several languages and applications, I have ascribed to (subscribed to?) How To Write Unmaintainable Code, which has been in circulation in one form or another for well over a quarter-century. This version was reproduced with the original author's permission.

    Never ascribe to malice, that which can be explained by incompetence. -- Napoleon

    When I open a junior developer's Storyline file and see a cavalcade of objects titled Rectangle, I know I've found a kindred spirt. Bonus points if they're grouped together and the Group Title is also Rectangle.

    Or a simple shape like the afore-mentioned rectangle with a text box on top of it, which is perfectly centered and has the same timing as the object beneath it. Now have about 14 of those sets on the slide. Bonus points if you break a paragraph up into individual text objects and align them on the rectangle.

    Or a trigger which is listening to a counter incrementing a variable. When the var is exactly equal to a specific number, then the NEXT button can be clicked. Oops, the learner clicked one of the tabs on the slide twice and now that variable is greater than the required number? So much for the NEXT button. Time to restart the course from the beginning.

    Or multiple triggers which do the same thing, but because of the execution order, several will never fire.