




Intro
Recently I published a sample project, answer to a forum question under this link. Please have a look at that project and its introduction to understand the problem with the simple solution proposed in that post.
That solution works fine until the learner has reached the pausing point of the Next button. At that moment, the Continue command in the shared action will override the pausing and the play head will continue until it reaches the end of the slide and moves to the next slide. It is necessary to cope with that different situation. The Delay command nor the Continue command take into account possible pausing points. Here is a screenshot of the timeline:
There are two different situations, each needing a different workflow:
- Learner clicks a shape button before the narration has ended; that narration has a duration of 28secs in the example project. Look in the screenshot for the red line and the red play head.
- Learner clicks a shape button after the narration has ended. The play head will have paused at the pausing point of the Next button. Look in the screenshot for the blue arrow indicator and the blue play head.
This needs apparently a conditional action for the shape buttons. You have to figure out which situation is valid. For that reason you need to know when the narration has ended. It is easy to see its duration in the timeline, in this case it was 28secs. To calculate the frame number at the end of the frame I used micro-navigation. If you are new to this type of navigation, please have a look at this blog post:
Solution
Variables
You need two user variables:
- v_start: will store the frame number of the first frame of the slide with the narration and shape buttons
- v_stop: will store the frame number at the end of the narration
Contrary to the timeline panel where seconds restart on each slide, the frame numbering continues throughout the project.
Shared Actions
EnterSlideAct
This shared action will be triggered with the Slide Enter event, and is meant to calculate the value of v_stop. Have a look:
The first frame number of the slide is stored in v_start. The duration of the narration is converted to frames, by multiplying with the system variable cpInfoFPS. The only parameter is that duration.
PlayAudio_Act
The former standard action has been transformed to a conditional action:
Same parameters as defined in the first blog post. The condition checks if the learner clicked the shape button before or after the end of the narration. Only when the narration hadn’t been finished it will need to resume. That has been done with the Delay command and Continue. That is not necessary after reaching the end of the narration, because the pausing point of the Next button needs to be kept pausing, and the narration doesn’t need to resume.
This shared action is needed for each of the interactive objects used to play an audio clip. In the project I used shape buttons. They are visible in the timeline screenshot as SB_Topic1…. SB_Topic4.
By using shared actions instead of duplicate advanced actions, you avoid choking the project if you need lot of those actions which was the case for the user asking the question. Moreover multiple instances of the same shared action also will result in a smaller file size. Of course they are also very easy to transfer to future projects. You can learn more about using shared actions in these videos:
Use Shared Actions: Lesson 1 (crash course) – eLearning (adobe.com)
(re)Use Shared Actions – Lesson 2 (crash course) – eLearning (adobe.com)


