On-Screen Closed Captioning (Layers, Triggers, and Variable Interactivity Question)

Hi everyone,

I'm looking to provide closed captioning for users as part of the slide timeline in Storyline 1 without using either the Storyline player or hacked player controls through the SDK.  I am using slide controls (play, pause, next) on a master slide while creating my content on subsequent slides.

I have brainstormed (and attempted to implement these methods):

  • create a layer that has text boxes timed to the audio on the slide that show/hide through a boolean variable showCC, which in my experience fails in Storyline 1 because I can't control layer pauses at the same time as a slide pause from a master slide.  If this is possible in SL 1, I'd like to know because this seems the most robust method.  If this is possible in SL 2 and someone can show me a working demonstration, upgrading is a possibility.
  • create a set of triggers (about 20...think for all onLoad and onClick event listeners depending on the evaluation of a boolean variable) that use a boolean variable showCC to individually show/hide text boxes that would create closed captioning, which in my experience fails in Storyline 1 because the master slide changes the variable (validated by outputting %showCC% on the master slide) but the subsequent content slides failing to register the variable change with its event listener.  I am guessing this may have something to do with multiple layers showing/hiding based on the same event.
  • create a shape that "hides" the closed captioning that appears on screen based on a boolean variable showCC to show/hide the text boxes that exist on the content slide using a CC button on a master slide with requisite onClick events that show/hide the shape based on the boolean variable showCC, which in my experience fails in Storyline 1 for the same reason #2 is failing.  The variable changes (validated by outputting %showCC% on the master slide), but the shape never returns to its normal state with the event listener.

I find adding Notes and including my CC on the side of the player a violation of the split attention principle, so I'm looking for a solution that won't use that.  It's my last-ditch, so if this can't be solved, I suppose that's a correct answer (albeit a weak one).

I also would like this solution to play nicely with this method here:  http://www.articulate.com/support/storyline/how-to-pause-the-timeline-of-a-slide.

Anyone have any ideas?

18 Replies
Steve Flowers

Hey Chris - 

There are a few ways to do this. I prefer to style and position my captions presentation element once. Here's the main method that I use. It works in both SL1 and SL2.

1) Create a captions holder on the master slide with a variable reference %captions%.

2) Create a text variable captions, a number variable captionsToggle and a true/false variable ccState (default false)

3) On the master slide, hide the captions holder object by default. Add a few triggers:

  • Adjust the variable ccState to not assignment when captionsToggle changes. I do this so I have the option of putting the CC button wherever I want it. This produces a "remote control" feature. Can put a captions in the toolbar if you want to use a little javascript.
  • Change the state of your captions holder to Normal when ccState changes if ccState=True
  • Change the state of your captions holder to Hidden when ccState changes if ccState=False
  • Change the state of your captions holder to Normal when the timeline starts if ccState=True. This will make sure the captions object maintains state from slide to slide.

4) On the base slide, create trigger shape objects off of your slide and align these with your audio bits. On each object, add a trigger to change the captions variable to your little bit of text. 

I'll add an example in a few minutes. If you build up a slide template with objects pre-distributed, this becomes a really fast process. You can add your captions holder to a layer if you're worried about floating it above the base timeline.

Chris Lancaster

As a follow up, this is a fantastic solution.  If you're a lurker who is looking through the forums looking for tips to take your eLearning to the next level, walk through this example Steve posted.  It'll open you up to novel ways to execute dynamic elements on the master slide.

Thanks again! 

Rod Schmidt

It would be great if they would simply create a dedicated layer called "CC" in Storyline and sync that layer's timeline to the base layer by default. That way, you could just place your captions in it (whether timeline driven, cue driven, etc) and show or hide the layer with a simple button toggle.

If you don't need the CC layer, you don't put anything in it.

kathryn brown

I have followed the example that @SteveFlowers so graciously shared and hope someone can please help. These are my issues:

1) The captions are automatically turned on and to hide them I have to click the CC button twice.

2) If they are off on the slide and then I hit next to go to the next slide, again, they are automatically turned on.

Thank you in advance for your help!