Six Ways to Keep Trigger Ache at Bay
Nov 12, 2019
As Articulate Storyline developers, we all must have experienced this disorder at some point of time: TRIGGER ACHE. The question is that ‘Are there are any preventive measures to minimize the recurrence of this disorder?’ Yes! There are certain measures, which can keep trigger-ache at bay.
1. Name Your Objects and Variables
Triggers revolve around two elements: variables and objects (text box, a line, a button to name a few). Using a generic name can land you in an unending maze. Let me illustrate my point by an example.
Imagine you were making a course. The initial ask from the SME is that an image needs to appear after the learner has clicked all the three buttons.
Later on the requirement changes, and your Subject Matter Expert (SME) states that the image needs to appear after the learner has clicked the ‘Examples button’ irrespective of whether or not the learner has clicked the other two buttons.
Observe the screenshots (a and b) of two trigger panels. Which trigger panel would you find it easier to carry out your edits?
If you have a lengthy course, you might find naming your objects and variables a bit cumbersome; it is. Nonetheless, it can save you a lot of headache and time later on.
2. Minimize Actions
The lesser the number of actions associated with your triggers, the farther you are from suffering a trigger-ache. Let me narrate to you a real-life example. In a course I made, the assessment section had several Multiple Choice Single Select questions. Each question had four distractors. If learners were to select a wrong option, a variable was to be set as ‘False’. My trigger looked something like ‘Change Variable 1 to false if the state of the distractors is selected when the user clicks ‘Submit’.’
What happened next? If I missed (and I did miss quite a few!) selecting a distractor, the trigger would not yield the desired result. If I missed changing to ‘OR’; the trigger would not work correctly. Phew!
Later, I realized that I could have simply configured my trigger as ‘Change Variable 1 if the state of the correct option is not selected when user clicks ‘Submit’.
Check the screenshots given below to get a visual idea of what I mean.
3. Sequence Your Triggers Correctly
I have a question: Imagine you wish to get your car started. Which of these actions would allow you to do so? Action 1: Unlock the door, start the car, and get inside. Action 2: Unlock the door, get inside the car, and start it. Action 2, of course.
Now, triggers are like a car waiting to take your destination. The catch is you can start the car only if you get the sequence of your actions right. To develop a greater understanding, you can download the Articulate Storyline 3 file I’ve attached with this article. Play with the order of the two triggers given on slide 1, and check the result you are getting.
4. Inspect the Functioning of Your Triggers
Is your trigger really changing the value of your variable? Articulate Storyline has an easy way to let you find that out. Draw a textbox, click the Insert tab, then click the Reference icon. You will get a dialog box showing the variables you’ve used in your course. Choose your variable, and its reference will get created on your slide. Use this reference to check whether or not your trigger is resulting a change in the value of the variable. If not, you need to rework on your trigger.
5. Anticipate Learner’s Behavior
In one of the courses I worked on, the content pieces (which fitted under the umbrella ‘Types of’) were displayed in a tree-like structure, and each content piece had an associated text. The customer insisted the text be displayed on hover. Moreover, the customer also wanted the ‘Next’ button to get activated after the learner has hovered over each of the content piece. Naturally, I opted for a variable: a number variable. The logic was every time the learner hovered over a content piece, the value of the variable would increase by one. Once the variable exceeded a value, the Next button would be active. Do you think I did the right thing?
Nope! Remember, the content pieces were comparative in nature – types of – and there was every possibility that the learner would hover twice on at least one of the content pieces. In that case, my variable would exceed the stated value (and change the state of the Next button to active) even if the learner had not hovered over all the content pieces. I, therefore, added one more variable (a true/false one), and revised my trigger statement.
Now, the value of my variable increased only when the learner hovered over the content piece for the first time.
6. Keep the ‘Next Slide’ in Mind
Focusing on the present is a good quality, but when working in Articulate Storyline, you need to think about the future. ‘Will the triggers and variables work when the learner revisits the slide?’ This is the question you need to ask yourself.
Articulate Storyline has a feature to reset the slide to initial state while revisiting. However, my experience has shown that variables and triggers do not always get reset to their initial states. Consequently, when your learners review your slide, the triggers and variables might not work properly.
What I do is insert a dummy slide after the slide containing the triggers and variables. Once I am convinced that the triggers are working fine, I press the Next Button, then the Previous button, and recheck for any errors or inconsistencies.
What's your prescription to keep trigger ache at bay? I would love to hear from you.
14 Replies
Hi, Punam,
You've articulated some great tips!
Re: #1 - Naming. I'm a big proponent of naming things in Storyline. In addition to using a name that means something (e.g., a nickname for what the object is or does), I also like to start with info that helps me organize it. For example, consider a typical interaction with 3 buttons, each of which opens a different layer. I'd start the button names with "b" and a number, for example: b1-type, b2-color, b3-size. I'd use the same names for the layers, except that those names would start with "L" instead of "b" (e.g., L1-type, L2-color, L3-size). This forces the objects into the desired order, whereas using just the nickname part could put them in a different order when alphabetized. Having the button and layer names match also makes it easy to trouble-shoot the triggers. In other words, I can quickly spot if I inadvertently told Storyline to show the wrong layer.
Re: #6 - Returning. Good for you! I agree that we developers should consider what happens when a user returns to a slide (even if most users probably won't go back if they don't have to).
Wonderful tips, Judy! And thanks for kickstarting this discussion, Punam.
Hi Judy,
Thanks for the additional points that you've shared. Definitely enriched my article :) I will try out your last suggestion. And I will also edit my article (over the weekend) to include your tips. They definitely need to be a part of the main article :)
This post was removed by the author
Thanks for the appreciation, Trina
Thanks a lot for the appreciation, Trina.
Great list Punam. I appreciated the reminders, and some insights into your process.
Early in my development career, I had heard Tom talk about the importance of naming things, but I never really processed it, or implemented it on a consistent basis. It wasn't until we had an intern come in, that it really helped drive it home for me. He came in with a programming background, and talked about not only naming everything, but establishing a naming convention for the items in your project. We came up with a cheat sheet, and I still use it (mostly) today :) I've attached it, in case anyone is interested.
Great tips, Punam. Something that I know it's a given, but it's worth emphasizing is planning ahead. It's best to have a clear idea of what you want to accomplish before starting to create triggers.
Also if an action is rather complicated, or something that I haven't tried before, I never start with the course I'm working with. I create a new file to create and test, then once I find it functional, i copy the slide into the course, or re-create the actions in the course file. That keeps the official course file clean.
I too use mnemonic names for objects, variables and layers in courses. It's very useful to have things properly labeled.
Thanks again.
Hi Joe,
Thanks for sharing your cheat sheet. It will definitely prove super useful. When I revise the article, I will combine your tip along with Judy's tip to make a super tip :) I will also attach your sheet in the main article.
Hi Ulises,
That's another great way of ensuring a trouble-free development of files. What I usually do is create a new scene, and do the experimentation. This ensures that I don't have to recreate the variables.
Wow, this is fabulous. I am bookmarking this page!
John, glad to know that you think the article and the discussion thread to be worthy of bookmarking :)
I usually don't have trouble setting up triggers that work correctly the first time through. But I often have trouble getting them to work correctly on revisits. Any tips and tricks for that specifically?
Hi, Katherine,
My comment above has some specific tips for controlling what happens on revisits to an interactive slide in which buttons reveal different layers.
Here's a general summary: Start by determining how you want the slide to look when the user revisits it. Then determine what additional triggers, conditions, and/or variables might be needed to achieve that. All that has to work with how you tell Storyline to handle the slide on revisits:
Judy has shared some excellent tips, Katherine. Would like to add that when it comes to triggers which are based on variables, you can add a trigger that resets your variable.
For example, if you have a Boolean variable (default value = false) being set to true when a user performs a particular action on slide 1, then you can add a trigger to the 'Prev' button of slide 2 stating that the Boolean variable needs to change to False when the previous button is clicked. This will ensure that when the learner revisits slide 1, the Boolean variable is back to its default value 'False'
This discussion is closed. You can start a new discussion or contact Articulate Support.