Layer Timing when Triggered

I have 9 objects on the slide that each display a layer with audio when clicked.  They also show a new state where the object has moved.  No problem.  Once all the objects are visited, I want a new final layer to display/play.

I have added a trigger that checks the state of all the objects concerned, but when clicking on the last obect, the related layers of both the last object clicked and the new final layer begin to play simultaneously.

How do I control the timing of each layer once the trigger conditions have been met?

9 Replies
Doug Bedinger


Thanks for your response.  I thought about using a hidden button, but the length of the audio for each object varies.  Since learners may click any of the objects at random, to initiate a hidden button later than a given audio would create a gap of slience if the learner clicks an object with shorter duration audio last.

Mike Enders


Cool interface idea with the palette!  I like it.

Here's the challenge.

You want the learner to listen to the entire audio clip on each layer.  But right now, your trigger to show the final layer is predicated upon their action of clicking, and not having listened. If you simply want the layer to launch and play by itself, you can tell it to close all other layers. This would avoid the double play. However, it would also shut down that last paint splotch layer as well.

Going back to my first suggestion with the hidden button (or paint splotch), you could still go with this method and simply not allow the learner to click on the base layer objects and then close the layer when the timeline ends (thus, forcing them to listen).  

(Otherwise, we could go with variables, tied to the audio completing, but you'd need to tell the learner that they have to listen to the entire audio clip.  This could cause for some headaches in a number of ways!)

I've attached the .story file with a few modifications.  Basically, I've added a media complete trigger to close the layer, and no interaction with the base layer.

I hope this helps.


Doug Bedinger

Hey Mike, I didn't know you could attach a trigger to the recorded audio.  It seems I could define a new state to each paint object, say "painted."  Then I would have the state change AFTER the media is played.  I would then use a trigger to cause the Mona layer to show up once all object states have been changed.  I'll give that a try and let you know how it goes.

Doug Bedinger

OK, I added a trigger to each paint object layer to change the state of each paint object to a custom state I called "Painted" when the media finishes playing.  However, this is still not working as expected.  I therefore tested the Mona trigger by changing it to play when ANY paint object status equals "Painted."  I then changed the inital state of one of the paint object's to "Painted," and the Mona layer played immediately when previewed.  This leads me to conclude that the layer triggers are not working to change the paint objects status to "Painted" as specified (see attached updated file).

Mike Enders


Here's what's happening....

By choosing the checkbox to hide layer when timeline finishes, you're closing down the layer before your trigger has a chance to fire.  So you need to keep the trigger I used (close layer when media completes) and use it in conjunction with your new trigger.  

So on each layer, you'll have:

Trigger #1: Change state of object when media completes (this has to come first so it  fires before the layer closes)

Trigger #2: Hide layer when media completes 

Make sure to remove that "hide layer when timeline finishes" checkbox in the layer properties for each layer.  When I take these steps, your interaction works.