Be a Captivate Ecologist: reuse variables!

Intro

In a former blog post I explained my work flow when preparing advanced actions for a Captivate project: Look Before you Leap. I inserted an explanation of this work flow in the DevLearn presentation as well, and offered a worksheet.
One of the steps is the choice of user variables, and the way you can save a lot of time later on by this choice, more specifically when trying to reuse variables. On the user forums I do see that often users just create variables on the fly and end up with so many variables that they are difficult to manage and cause a lot of unnecessary editing work. I was happy to get a rather simple use case by which I can explain this step another time.
 
Another user, an Emergency Nurse Educator inspired me for this use case, with this question:
"I have developed an MCQ captivate project that presents the emergency nurse with randomised scenarios of patients that they have to assign the correct level of urgency.  The levels of urgency are 1 through to 5, were 1 is the most urgent and 5 the least.  Captivate produces an accuracy %, but I would also like the percentage of over or under assignment of urgency category."

The user provided me with a small example with 3 MCQ slides and allowed me to publish this file here ... on the condition that I offered a solution of course.

 

Example SWF

Play this SWF to see the result. On the score slide the number of incorrect answers that were too high or too low. It is not a percentage - for 3 slides it is a bit ridiculous - but calculating the percentage as well is possible of course.

 

Variables - actions & triggers

No one will doubt that at least one counter is needed, which will be incremented with each incorrect answer. Although I could achieve it with one counter, found it easier to create two:

  • v_low  will store the number of incorrect answers that were under assignment of urgency category
  • v_high  will store the number of incorrect answers that were under assignment of urgency category
If you want to try it with one counter, you'll use the system variables cpQuizInfoTotalCorrectAnswers and cpQuizInfoTotalQuestionsPerProject together with the single counter to calculate the inverse counter. Bit cumbersome, not?
 
To check the answer I have to compare the given answer with the correct answer. The given answer is stored in the system variable cpQuizInfoAnswerChoice. The value will be the 'numbering' of the answer. This means in the default setting assumed here, where answers are indicated by characters A, B, C, D, E it is the character that will be stored. This is great news, because operators like 'is greater then' can be used to check if the answer was 'higher' than the correct one.
 
As I explained in the  DevLearn Presentation you have two possible actions on exiting a question slide:
  1. one that will be executed after a correct answer; in this case this can be left at Continue or eventually Go to Next Slide
  2. one that will be done after last attempt (on question level) for a wrong answer, which we will have to turn into an advanced conditional action
Since the wrong answers can only be too high or too low, this advanced action can be limited to one decision:
  • either the answer was too high, then the v_high counter has to be incremented, will be the THEN part
  • or it was too low and the v_low counter increments, the ELSE part
The most annoying work when using advanced actions is to duplicate and edit similar actions, because of the need to point to a unique ID. In this use case: the correct answer is different on each Question. At first sight I couldI create the advanced action for the first question slide this way:
IF cpQuizInfoAnswerChoice is greater than B       (B is the correct answer)
THEN   Expression  v_high = v_high + 1
ELSE    Expression v_low = v_low + 1
In that case I have to create a similar advanced action for each Question slide, in which I have to change the correct answer indicator. To avoid this cumbersome work, I created a reusable variable v_correct. This variable will get the correct answer indicator (B for the first question slide) on entering that slide, by a simple Assign action.
 
And the advanced action will be changed to:
IF cpQuizInfoAnswerChoice is greater than v_correct
THEN   Expression  v_high = v_high + 1
ELSE    Expression v_low = v_low + 1 
And this unique advanced action can now be used on any question slide!
 
 

More tips to save time

I would recommend creating a template with one question slide and the score slide. The question slide can have a regular question instead of a placeholder. Attach both the assignment action (on Enter) and the advanced action (After last attempt) to this question slide.

When using this template: duplicate the question slide as many times as needed. They will all have the same Text Captions, that you can export, edit and import again to change the question texts. In Captivate indicate the correct answer, and at the same time assign the correct answer indicator in the Properties panel for the slide, On Enter.
 

 

Using Captivate Widgets? Some tips

Intro

Captivate comes with several widgets that you can use freely. Some of those widgets are really easy to use and to configure, but I have to confess that sometimes I had to curse quite a while before discovering some functionalities of the Widget Properties dialog box. Because there is no explanation available at all. This small article is meant to offer you some tips and warnings. Some of those tips have already appeared in other postings, where I used widgets.

General tips

Duplicating widgets

Some widgets do need a lot of editing (formatting), but if the widget has an associated variable do not copy it to save time, because the copies mostly will cause issues.

Multiple widgets on one slide

You can use multiple widgets on one slide, but be careful when stacking interactive widgets that are in the same location on the slide! This can lead to unpredictable results, same as with interactive objects on the same place. 

Interactive widgets

Those widgets can have a score (eventually to be reported to a LMS) and perform actions on Success and on Failure like other interactive objects (button, TEB, Click box).  They will appear in the Advanced Interaction view (F9). Of course that is also the case for the Question widgets (only one available in the Captivate box).

Master slides and widgets

You can only add static widgets to master slides, no interactive nor question widgets. The static button widget can be very useful on master slides until it will be possible to add regular buttons.

Specific tips

Widgets with associated user variables

 Several widgets have associated user variables, which can be used later on to display in Text Captions, or in advanced actions. Examples are CheckBoxes, DropDown, RadioButtons, TextArea, Timer... 
  • You have to create those user variables separately, using the Project, Variables dialog box; and like all variables they are case sensitive
  • If you have to enter more than one variable in the Properties (ListBox, ComboBox, DropDown,..) they have to be separated by commas but you do not enter a space before/after the comma or only the first variable will be accepted
  • If you have to enter more than one value, same rule: no spaces after or before the comma separator

Preview area

To me this is a misleading name because I expect such an area to be read-only which is not the case: for some widgets you have to edit in this preview area! Some examples, just to push you at exploring that Preview area in case you want to change something that is not available elsewhere in the Properties Dialog box:

  • ArrowWidget: you can use the preview area to resize the arrow and to move the text
     
  • StaticButton: use the Preview area to resize the button, and to make place for more letters in the Text. Be careful with the text resizing: if you resize using the corner handles or the handles on the horizontal borders you'll resize the font as well, just use the handles on the vertical borders. 

  • If you want to use a customized image, it will by default be placed to the right side of the button.
    You have to cover up the button with that image if you only want the image to be visible. Do not use transparency in the image and be sure to copy it to the folder where you will put the published file. Moreover this image will be not visible when previewing, only after publishing! 

I expected a similar behavior for the InteractiveButton widget as for the StaticButton. I do not remember ever using this button and checked it out. It seems to be buggy, the caption doesn't appear in the Properties dialog box, which makes it very difficult to adapt the size of the text. I'm not sure if this is also the case for other users, didn't read any question about this widget on the forums so far.

Question Question Slides - Part 2

Intro

A couple of weeks ago I tried to compile all the ideas about default Quiz functionalities and tweak possibilities in a blog post: Question Question Slides in Captivate.
From a recent thread on the user forum (Quiz Results Text Styling Problem), I concluded that something was missing: 'How to tweak the Review message on the Score slide?' There is an important bug in CP5.5 concerning that review message: it is limited to 'oneliners', you cannot put a long text in it, it will not wrap, you do not have a Format accordion in its Properties Panel neither.
Thanks, Miguel, for pointing out this gap that I will try to fill up now. If you did not know it yet, I have learned about everything concerning Captivate spending time on the user forums, questioning, answering and discussing.
This post will use the same example Quiz explained in this blog post about customizing the review messages on the Question slides: Customizing review messages. Whereas that post explained the work flow both for Captivate 5 and 5.5, here I will focus only on 5.5. However the work flow will be very similar for the previous version.
Update 6.1: in this version, only available for subscribers and ASA, finally the Review message will wrap.
 

Demo

Watch this sample SWF to see the result of the tweaking: if you compare with the previous version about Customizing review messages, you'll see that there is a Retake option (you have 1 attempt on Question level but 3 attempts on Quiz level) and that the review messages on the score slide are customized. The Review button is covered up by the Retake button (explained in the first part of Question Question slides), so it will only be visible when you have exhausted the attempts. I did not provide a review message for the question slides when you didn't answer the question (completely). Reason: you need to use the default Review area in that case. You can adapt the text style but not the caption style itself. It should be possible with more complicated advanced actions and user variables however, adding a third Text Caption and keeping track of non-answered questions.
 
 

Work Flow

Question Slides

I reused the work flow described in Customizing review messages
  • I created Text Captions OKx and NOKx for each question slide and set them initially to invisible
  • Created advanced actions Correctx and NotCorrectx to be triggered On Success/Last Attempt (Quiz Properties) that show the right text caption and jump to next slide, to avoid that the user sees this caption immediately
However, this time 3 attempts on Quiz level are available, the user can retake the quiz if he fails. During Retake he should not see the text captions (OKx, NOKx) that were set to be visible in the previous attempt. This is a new 'situation'. When entering a question slide a user can be in Retake or in Review situation, which means we'll need an advanced action to be triggered On Enter Slide. Retake only happens
  1. if the user has failed on a previous attempt (system variable cpQuizInfoPassFail will have the value=0) AND
  2. If the attempts are not exhausted
You will be tempted to use the system variable cpQuizInfoAttempts to track the number of attempts, but I couldn't find a proper solution using that var: it will be updated when an attempt starts. It will never be greater than the maximum allowed number of attempts, so I cannot use a condition like 'IF cpQuizInfoAttempts is greater than 3' to check if the attempts are exhausted. For this reason I created a user variable v_attempts that is incremented on entering the first question slide. Once this variable exceeds 3, I know that the user is in Review mode, not in Retake mode.
 
I created an advanced action EnterQx to be triggered on entering each question slide. It is a conditional action with two decisions for all question slides except the first one. For the first question slide there is first a mimicked standard action as a first decision. You'll find all decisions for the first question slide in the Gallery:
  • Decision Increment
  • Decision Retaking? checks if atttempts are not exhausted and user has failed in previous attempts and in that case hides the text captions
  • Decision Reviewing? checks if the user has Passed OR has exhausted his attempts and in that case just continues, which means that the correct text caption remains visible

Score Slide

To have a customized Review message, I cleared the default Review Messages, but left the placeholder object partially on the stage (made it really small).
I created three Text Captions: SuccessScore, FailScore, ReviewScore, set initially to invisible.
Review and Retake button were aligned with the option 'Align and resize to the same size', which results in the Review button being covered by the Retake button until the allowed attempts on Quiz level are exhausted.
On Entering the Score slide an advanced action EntScore is triggered (see Gallery). This action is conditional and has 3 decisions:
  • Decision Passed: checking cpQuizInfoPassFail will show Text Caption SuccessScore; the Review button will appear automatically (functionality of Quiz)
  • Decision Retake?: checking both cpQuizInfoPassFail and cpQuizInfoAttempts to show the Text Caption FailScore
  • Decision Review?: to show the Text Caption ReviewScore if user failed and exhausted attempts

Other gaps?

Please, post a comment if you are finding other gaps in my Question slides overview!
 

 

Presentation DevLearn 2011

Exactly two weeks ago I enjoyed presenting a session at DevLearn 2011 about Advanced actions in Adobe Captivate with Vish (Viswanath Shivaswamy). I promised to publish the presentation for those who were not able to attend. As you all know, a lot of work is waiting when you return from a conference, so it took me a while to adapt the presentation and to add voice overs. Today I'm happy to be able to publish at last. Just hope that you will be patient while the pretty big file (15MB) is downloading. In the near future I will try to rescale and adapt for publishing on YouTube as well, in different movies.
 
I included a Table of Content in Overlay where you can navigate to your wish. In the real session we also gave some demonstrations in Captivate itself, but I had to leave those out of the SWF.  Please, hope you will post some comments.
 

Gaming in Las Vegas - DevLearn 2011

Intro

If you have been visiting this blog recently, you already know that I'm very excited to be presenting  a session at DevLean about Advanced Actions  in Captivate 5/5.5 with Viswanath Shivaswamy (Unleash Adobe Captivate's Full Power). Since this conference is situated in Las Vegas it seems appropriate to have a Game as use case. For attendees, not only those who will be there but also those following the Backchannel with David Kelly as experienced backchannel curator (DevLearn BackChannel) this blog post offers a preview of the game. Have fun...

Game

In this game you'll have to find what is on an image (choice of 2 images in this example) by disclosing parts of the image (4 in this simple case). To disclose such a part you'll have to answer a question correctly, which will then be translated in a score of 5pts. After each correct answer you'll get the opportunity to guess the content of the image. This will also result in a score. The points earned by the guess depend on the number of parts that were made visible: 50pts if only one part disclosed, 35pts for 2 parts, 20pts for 3 parts and 5pts whan all parts are visible.

Sorry, it is a pretty large file (5MB) so you'll have to be patient when loading.

 

Waiting

By means of this game we will try to explain a practical work flow to start with this kind of more complex projects. Of course introduction to the basics of Advanced actions, more concise examples, tips and tricks will be offered as well. And we hope on a lot of interactivity, questions from the attendees (real or distant). 'See' you there at LV!

One of the questions that will certainly raise is: can we report this kind of score to a LMS.  I know, the last blog post about reporting partial scores, or adapted scores as in this game, is not yet published but... wait a little bit more. With the assistance of friends from the Captivate Community we will be able to offer you even two solutions: one using JavaScript, and another one using the amazing new Interactive Master Widget of InfoSemantics.

 

Update

Uploaded a new version of the published game, already learned something and DevLearn didn't even start. Two changes:

Connie Malamed suggested on Twitter that I should change the background of the radiobuttons answers to have more contrast. And she learned from me that 'Danmark' is not mis-spelled, it is just the original name of this country (not Anglicized to Denmark).

Found by accident that something went wrong when one clicked twice the same card, weird that no user has detected that. This has been corrected, using one of my favourite user variables, v_void. Ready for DevLearn now.

Question Question Slides in Captivate

Unleash Adobe Captivate's Full Power with Advanced Actions

Intro

You know from this blog that it is possible to create your own question slides, using standard objects and advanced actions. That allows you to have functionalities like partial scoring, selective Retake, two quizzes in one file, etc. On the user forums I see a lot of questions concerning the default question slides, and in this post will try to list some tips about using those  'normal' questions. if you understand their functioning well, you'll be able to tweak them and perhaps avoid to invest a lot of time in creating custom questions. Beware: this will not allow you to realize quizzes with partial scoring etc! In a previous post: Customizing Review Messages I explained some of the work flows repeated here, but so many questions about this subject appear on the user forum, I thought it to be useful to have a general article that summarizes both default work flow for questions/quiz and possible ways to tweak them.
 
Watch this movie, where you can see some tweaking applied to.
 

What is typical for Question slides?

  • Only one Timeline with pausing point is available: no separate timelines for the different objects, no timing possible
  • Most Question Objects have their proper Object Style (missing are the ....
  • You can move the pausing point visible in the timeline manually, but its timing is not available in the Properties panel
  • Default objects on Question slides are always on top (see also Other Buttons)
  • Whereas you can add non-interactive objects, it is impossible to add interactive objects; one big exception is the hybrid Static button widget
  • You can use the slide event On Enter to trigger an (advanced) action, but the Exit event is not available (really replaced by Success/Failure events)

Analyzing Default Work flow

Start Settings

  1. Two attempts on Question level, two attempts on Quiz level
  2. All captions are visible: Correct, Incomplete (check Options in Quiz Properties), Retry Message (Action Accordion in Quiz Properties) and Incorrect (not available in Options)
  3. All buttons remain visible: Clear, (Back), Skip (Options in Quiz Properties), Submit
  4. Retake and Review allowed as well as Backwards navigation (if not, the Back button would have been contradictory)

Process on Question Level

First step
  • User answers a question, clicks Submit button; the pausing point of this button is the one you see on the timeline, slide level
  •   The conditional action executed as a result of clicking that button:
    • pops up Correct/Incomplete/Incorrect/Retry caption, depending on the answer (conditional action)
    • the message to press Y or click on the slide to proceed is included in the Correct/Incorrect; 
    • slide pauses, will not proceed beyond the pausing point; user can watch the captions as long as he wants  
Second step
  • User presses Y or clicks on the slide; see this as a click box all over the slide with a shortcut key=Y: its pausing point is the same as for the Submit button.
  • The conditional action executed as a result of this user event:
    • if answer was Incorrect and attempts not exhausted: Incorrect caption disappears, playhead remains paused, user can change his answer
    • if answer was Incorrect and attempts are exhausted: Incorrect caption disappears, action specified in Action accordion of Quiz Properties panel 'Last Attempt' is executed and the playhead moves on
    • if answer was Correct: Correct caption disappears, action specified Action accordion of Quiz Properties panel 'On Success' is executed and the playhead moves on
Other Buttons
  1. Back: If you allow Backwards navigation, you have to know that the answer given on a previous slide cannot be changed by the user if he comes back to that slide, his answer is blocked, the Clear button will not be active either. It is only sort of a Review option of that slide. Personally I will never allow backwards movement and this is one of the reasons. If you agree with me, do not try to delete the Back buttons on the slides because they can reappear miraculously, but uncheck the option "Allow Backward Movement" in Quiz, Settings.
  2.  Clear: will allow the user to clear his answer, as long as he remains on the slides and did not submit his answer
  3.  Skip: doubles up as real Skip during answering questions and as Next during Review which can be a bit confusing
 
All objects on the questions slides have top priority, and this is the sequence of the stack:
  • top most is Back button
  • Clear button just under the Back
  • Skip under Clear
  • Submit is the bottom object
Because of this priority you cannot cover a button with another object. Possible however is:
  • to make a button invisible to the user: delete its text and make the button transparent
  • moving buttons, for putting one on top of the other (depends on sequence just described) or put them where the user will probably not click
 

Process on Quiz Level

Retake/Review
Both buttons are available on the Score slide (see Tweak Possibilities) which can confuse the user because:
  • he is supposed to click Retake if he wants another attempt: this button will disappear automatically when attempts are exhausted
  • if he clicks Review before exhausting attempts, all remaining attempts will be lost
Choosing the Retake button will clear all answers in the quiz, correct and incorrect as well. The total score is reset to 0. 

The action triggered by the Continue button on the Score slide depends on the Pass/Fail status of the Quiz. Default actions are Continue for both Pass and Fail. Those actions can be changed in the Quiz Preferences, Pass/Fail as you can see in this image. The whole list of actions are availabe, you can jump to different slides, open a URL/file/project, execute advanced actions etc.

Quiz Scope
The quiz scope is a range of slides where the Quiz is 'active'. This scope starts with the first slide that has a scored object, which can be a question slide but also a slide with a scored interactive object. The scope ends with the score slide, or if you do not have a score slide, with the last scored object. Whenever the user gets out of that scope, the attempt is considered as finished if multiple attempts are allowed. Getting back into the Quiz scope will then not allow to continue the attempt. This jumping out of the quiz scope can cause issues if you are choosing one of the strict Required options in the Quiz Preferences like Pass required. 
  
 

Some Tweak possibilities

On Question level

Replacing the 'Press Y or click on the slide' by a 'Next button'
OK, I do know that you cannot add a button, which is an interactive object, to any question slide. But since this step is in reality triggered by a click box that covers up the whole slide, any object that looks like a button (image, rectangle) will cheat the user to click on it, and he is just triggering the Success action of the click box. 

 
Skipping first step of the two step process without captions
If you think it annoying that the user has to enter his answer in two steps, and you do not want to show the Correct/Incorrect text captions, just delete them. For the correct caption this can be done using the Quiz Properties panel, Options accordion. The Incorrect caption has to be deleted on the slide. In that case the first step is skipped completely: when the user clicks on the Submit button and it has been the last attempt, the Success or Failure action specified in the Quiz Properties, Actions panel are executed immediately. If you change those actions from 'Continue' to 'Go to Next Slide', the user will get immediately to the next slide. When allowing multiple attempts on question level, it is perhaps better to keep the 'Retry message' to avoid that user is just waiting, because nothing will happen. I illustrated this work flow on the first Multiple Choice question in the example: when clicking Submit, only caption that will appear is 'Retry' as long as attempts are not exhausted. When attempts are exhausted, navigation is immediately to the next slide.

Skipping first step of the two step process and showing captions and/or offer audio feedback
Little bit trickier, because you'll have to create simple advanced actions. Start by deleting all the default captions as in the previous solution. Prepare your own feedback objects:
  • either text captions for correct/incorrect eventually with audio clip attached, and set them to invisible
  • either 'invisible objects' like a rectangle without a stroke and with a fill that is Alpha=0% and attach the audio feedback (correct/incorrect) to those objects; set the objects to invisible
Create two advanced actions, one to be triggered as Success action (Quiz Properties, Actions), second to be triggered After Last attempt (same place). 
  1. Show the appropriate object (either Text Caption or object with audio attached)
  2. Hide the opposite object
In this case the playhead will continue on the timeline. Be sure to move the pausing point of the slide so that time left after the pausing point is sufficient to read the captions or to listen to the audio feedback. If you want to offer the user a Next button, to continue before the playhead has reached the end of the timeline, you can use this workaround (illustrated in the second question of the example - advanced actions are in the Image Gallery, MCQCorrect and MCQWrong):
  • add the Skip button, but make it invisible to the user (no text, transparent); this Skip button by default jumps to the next slide, it will remain active but invisible
  • on top of the Skip button add a rectangle with the text Next; this is possible because it is a static object; make it invisible in its Properties panel
  • to the advanced actions described before, add a third statement that shows the rectangle
In that case you can add the static button widget that has navigational actions like 'Go to Next Slide' in its functionality list. You can even hide that button widget and show it with the Success/Last Attempt actions as well. The third question uses that approach. No need to extend the slide duration in this case. You'll have to use the static button widget with pause, CP5.5 users can download this widget from my blog: What I (dis)like in CP5.5

If you allow multiple Quiz attempts (Retake) and/or Review, you have to hide the custom text captions, fake button/button widget whenever the user reenters the slide. In the Image Gallery you'll see one of those actions 'EnterMCQ', triggered on entering the second Question slide (MCQ)
 

On Quiz level

Hiding the Review button until attempts are exhausted
Drag the Retake button on top of the Review button on the stage. This is possible because the Retake button is higher in the timeline stack of the Question slides. User will not see the Review button until he has exhausted the attempts. At that moment the Retake button is hidden automatically and the Review button gets visible. This functionality is used in the example movie.

Changing Skip button to Next button during Review
The same approach as for the Next button during answering could be used, but in this case you'll need to track if the user in in the Review situation: either he has exhausted the attempts and Failed, or he passed in one of the attempts. So we'll need an advanced conditional action to check that. In the example movie I did not use this approach but hide the playbar during the quiz by a simple action 'Assign cpCmndShowPlaybar with 0' on entering the first slide (instruction slide). The playbar will be set to visible when entering Review mode with this work flow:
  1. on entering the score slide I increment a user variable v_counter with the advanced action EnterScore (see image in Gallery)
  2. on entering the first Question slide I trigger an advanced action EnterFirst: since Review situation can happen either after two different situations I had to use a combined OR condition to turn on the playbar when Review status is reached (see image in Gallery)
In previous articles I explained how to customize the Progress indicator and how to customize Review messages.

Concentration Game - created exclusively with Captivate

Update:

A new version of this game, taking advantage of more recent features and published to HTML5, can be found in this blog:

Memory game (shared action)

Intro

Another challenge popped up on the user forum:
"I am trying to recreate the Classic Concentration game. Does any one have any ideas how I would do this in Captivate?"
You can read the full thread here: How would I create the Classic Concentration Game?

And I tried to realise this exclusively with Captivate functionalities: no widgets, no ActionScript. There are of course limited functionalities as I will explain at the end. I have been using the possibilities of hiding/showing objects a lot in this example. For this reason I recommend reading a previous post about this subject: 

In this blog post you'll find the global concept of the sample movie. Later on I will publish a companion article that will explain the advanced actions in depth.

Example movie

Play with this SWF to get the feeling of the game. Only two games are available but the number of images can easily be extended without too much trouble. Have fun.
 

Work Flow

You'll find here the same subjects I explained in my previous post Look before you leap where I tried to give you a detailed view of my preparing brainstorming; the 'Leap' portion (construction of the advanced actions) will be treated in the article:

Situations - Slides - Events

Here are the situations that can occur in the game:
  1. Choice of a challenge: either Europe or North America will have consequences later on, so I'll need a variable
  2. Clicking a first card, content of card will be showed, has to be remembered (by user and by the game), so I'll need a variable
  3. Clicking second card, content will be showed and remembered (variable)
  4. Game has to compare the content of both cards (duo): correct/incorrect will have different consequences/branching
    1. correct: cards are removed (image visible based on choice), game has to remember this 'duo' was correct, next action of user 
    2. incorrect: cards are again turned, next action of user
  5. User can choose to guess: answer can be correct/incorrect
    1. correct: congratulations, game ended
    2. incorrect: next action of user

This game has only 5 slides (see also Advanced Interaction View in Gallery),and you can check the timeline of the slides in the Gallery images:
  1. Intro: is the welcome screen, where the user can choose between North America and Europe (for the hidden image) using two buttons. This slide is reused, after a wrong guess of the user (situation 5) he is navigated again to this slide (hence two text captions).

  2. Game: is the most complex slide, with tons of objects, and most objects are timed 'For rest of project' which leaves them with one unique ID; the click boxes on the 'cards' are triggering advanced actions that will show the cards, and there is a Guess button that navigates to slide 4. This slide will be explained more in detail later on.

  3. Second: to have more events for triggering actions I used this second Game slide that will appear after the user has chosen two cards to reveal and with the timing 'For rest of project' it has the same game objects; the user will be able to read the Success/Failure captions, and proceed with a Next button which returns him to the second slide Game.

  4. Guess: when the user has clicked the Guess button on slide 2, this slide is presented; it has the same game objects as on the two previous slides, and a Text Entry Box that will be validated. If the answer is correct, navigation is to the last slide, if it is wrong, navigation is to slide 1 Intro.

  5. End: shows the image totally even if not all cards have been removed, a relevant text caption depending on the image and a Text animation; this slide will only be reached when the user has guessed the answer correctly.
Events used to trigger actions, slide and object events:
  • Enter of first slide Intro to show/hide buttons and Text Captions: advanced action EnterIntro
  • Buttons on slide Intro (Europe/North America): advanced actions Bt_EU Bt_NA
  • Button 'Next' on slide Intro (only visible on second visit) triggers simple navigation to next slide
  • Enter of second slide Game: advanced action EnterGame
  • Click boxes (12) on slide Game: advanced actions CB_11, CB_12.... CB_34   (location in label: 34 = 3rd line, 4th position)
  • Button 'Guess' on slide Game triggers a simple navigation action to slide 4 
  • Enter of third slide Second: advanced action CheckSecond
  • Button 'Next' on slide Second is set to Continue, because exceptionally I used the next event (Exit) and have to be sure the playhead reaches the last frame
  • Exit of third slide Second: advanced action ExitSecond
  • TEB on fourth slide Guess navigates to slide 5 End if validation is correct, to slide 1 Intro if it is incorrect
  • Enter of last slide End: advanced action EnterEnd

Variables

  • v_void: empty variable to check if variable v_one is empty
  • v_choice: to store the choice of Europe (E) or North-America (A)
  • v_current: very important variable to save time when editing, it will store the content of the last chosen card (AE, DW, Fl, FW, ID or PR) 
  • v_one: stores the choice of the card if it is empty (first card of duo) by using the variable v_current
  • v_two: stores the choice of the card if v_one is not empty (second card of duo) by using the variable v_current
  • v_AE, v_DW, v_Fl, v_FW, v_ID, v_PR will get the value=1 if that duo was discovered
  • v_counter will increment by 1 with each new discovered duo; I didn't use it in this example, but could be used to have a different score at success depending on the number of duos that had been discovered before guessing the image
  • v_first: gets the value=1 after the first slide has been visited, because that slide is reused and has to show different objects on the subsequent visits.


Objects

The timelines in the Gallery provide information on the objects and are pretty simple for slides Intro, Guess and End. 

On slide Game you have a lot of objects (not all are visible in the Timeline image). The stacking order is here very important, as is the timing of those objects. And I really hope that next version of Cp will offer us the ability to group objects, to have them in collapsible folders on the Timeline. From bottom to top this slide has:
  • the two images to be discovered, one for North America, one for Europe; this could be extended to more choices or even more images from those two continents; images are set to display for 'Rest of Project', so when discovered (partially) this will show up in slides Second, Guess; on slide End they will be uncovered totally
  • for each card you'll find a trio of objects (highlighted for first card on the first row), for this example: 
    • PR1_Fr image of the content of the card (here the mnemonic for Premiere), needs to be the bottom one; I choose this label because it tells me about the content (first card with Premiere, Fr); this image is also timed for Rest of Project
    • PR1_Bk the 'back' of the card that is visible when the game starts (used a gradient for those, but you can of course use whatever image you want), timed for Rest of Project
    • CB_PR_11 click box over the card, that will trigger the advanced action CB_11; I used this longer label to be able both to identify the content and the place to make it easier to attach the advanced actions (and edit the duplicates)
  • Text Caption for the button Guess ("If you want to guess....")
  • Button Guess
On slide Second all the objects set to display for rest of project (from slide Game) will be visible as well as its proper objects:
  • Button Next, left to the default action 'Continue' 
  • Text Captions Correct/Incorrect: the proper caption will be visible based on the action On Enter for this slide; when exiting the slide both Text Captions will be hidden and user is returned to the previous slide Game

Actions

As mentioned before, I will not explain the actions in detail here (post would be too long), just the general idea of each action

EnterIntro
This action checks if the Intro slide has been visited already, if this is the case the choice buttons (North America/Europe) are replaced by the Next button, and the Welcome caption is replaced by the Sorry caption. After that check the user variable v_first is set to 1.

Bt_EU/Bt_NA
Action will populate the user variable v_choice and go to the next slide

EnterGame
Complex conditional action, that first resets the user variables v_one/v_second to empty (v_void). It will set the proper image to visible, based on the user variable v_choice. Then for each of the duos it will check if they have been discovered and display that situation (hiding the back and fore images of the cards to display that part of the image if duo was discovered), using the variables v_AE.....v_PR.

CB_11.... CB_34
Those actions will populate the user variable v_current and hide the back of the chosen card. Then either v_one or v_two will get the value stored in v_current, depending on the fact that it is the first or the second card.

CheckSecond
Action will compare the content of v_one and v_two to check if they are equal. If not, the incorrect caption will get invisible. For the correct duos this has to be checked for each possible duo (combined condition) because of the need to set the user variables v_AE....v_PR that are used for the action EnterGame. The correct caption will be visible, the appropriate user variable is set to 1 and v_counter will be incremented.

ExitSecond
Correct and Incorrect captions are hidden, navigation to the previous slide

EnterEnd
All cards are hidden (foreground and background), which will reveal the total image. The appropriate text caption relating to the image is made visible based on the user variable v_choice


Conclusion

Captivate is not Flash, and I'm perfectly aware that for this kind of games programming in ActionScript is better suited. I limited the number of cards to 12, but it can be extended to more cards and duos. More images to discover is easily possible as I explained before. But if you want to change the content of the cards, this will be a lot more work. It is possible to have a differentiated score depending on the number of duos that are displayed before trying/succeeding a guess. You can report easily the score to a LMS (attach it to the TEB on the fourth slide Guess) but if you want a differentiated score to report you'll get stuck like with other question slides (customized or not) because you cannot attach different scores to an interactive object based on a conditional action.


Anyway it was fun to try to create this simple game, it allowed me again to refer to the workflow and the hide/show functionalities that I explained in previous posts. Your comments are, as usual, very welcome.
 

Update

Yesterday eLearnDesigner posted a comment to tell me that she discovered a bug in the game: when a user clicks twice on the same card, it will be considered as a success and both parts of the image will be revealed. Thanks a lot!

Of course I had overlooked this possibility, and solved this by changing some actions:
  • CB11...CB24  here I added a statement to disable the click box that had just be clicked.
  • EnterGame both click boxes for the pair of cards were enabled again if there was no match.

 

Look before you Leap - in Advanced Actions

Intro

Allen Partridge in a comment on a post suggested that I should blog about the work flow, the logic when setting up advanced actions. I find this a very difficult subject for a blog post, much easier when teaching face to face or online teaching. But this new question on the forum, that I tried to work out is a fine example to give you some tips, about shortening developing time by sitting down a while to reflect about the situations you want to create. And you'll not believe it but I do sit down, take a pencil and paper at that moment, or start to scribble in Evernote if I can't find those venerable tools immediately.

I will not explain the advanced actions in detail (some screenshots in the Gallery), but focus on the work flow and offer some timesaver tips. 

Question

 "Is  there anyway of taking a  series of variable controlled numbers say 0-9  that have been punched into a keypad, and formatting them so that the  ones that are clicked on the keypad are displayed in sequence. E.g.  if you click 1,5,8 and 9 on the keypad, then in the next slide I want  1,5,8 and 9 to be displayed as the keypad code so to speak." The complete thread can be found here: Push button lock theory
Those of you who visit the Captivate user forums frequently, will not be astonished that I asked more questions to have a clear idea about the goal. And the user kindly provided me with the image of that push lock. So I got these details:
  • the user chooses the code
  • the lock has 13 possible digits: numbers 0-9 and letters X,Y,Z
  • a C-button allows the user to reset the total code
  • the code has 5 digits
  • the code must not be validated but only shown on the next slide, and navigation to that slide is by a button Next

Example

Have a look at this movie to understand better what I tried to achieve. It has only 3 slides: Intro, EnterCode and ShowCode.


Look before...


For this particular (simple) use case, what did I write down? And you'll see that I mostly define labels for everything as well.

Situations - slides - events

Which situations will be possible and will I solve this in one slide or in multiple slides?
  1. User 'pushes' one of the buttons to enter a digit: which means I'll have 13 events that can trigger an action - all those actions will be similar
  2. User wants to change the code and clicks the C-button: event that is different from the 13 previous ones
  3. User has entered 5 digits and tries to push another button: has to be taken care off for each of the 13 actions described in 1.
  4. User clicks Next to confirm his code: special event, which will cause navigation IF the user has entered exactly 5 digits
  5. User clicks Next but has not entered 5 digits: should be taken care off, no navigation in that case
In this case I decided to have only one slide EnterCode with all the events/actions and a second slide ShowCode to navigate to with the Next button (situation 4).
There are 15 events to trigger actions by interactive objects:
  • 13 click boxes, each covering up a digit (0-9 and X,Y,Z), decided to label them as CB_0, CB_1..... CB_X, CB_Y, CB_Z
  • 1 click box covering the C-button CB_C
  • 1 button But_Next
If I want to make it possible to restart the process of entering the code on the slide EnterCode it is a good idea to use the event 'On Enter' for this slide to re-initialise everything.

Variables

Mostly I make a list of the variables I will need and create them separately from the advanced actions. This is only a personal preference, I do see a lot of tutorials where the possibility to open the Variables dialog box from the Advanced Actions box is used to create variables on the fly.
  • Since the goal is to show the entered code in ShowSlide I need 5 variables that will store the entered digits. This seems logical, but I did see that the user started by creating one variable for each digit? I suspect this is the result of just starting right away in Captivate before reflecting on the goal :-). Those five variables will be used on the second slide to show the code in a Text Caption. 
    Variables will be labeled: v_one, v_two, v_three, v_four, v_five

  • To use the C-button to reset the code, I'll need my favourite variable that is totally empty:
    v_void

  • To track the number of entered digits for situations 3-5 I need a counter:
    v_counter

  • The last variable I didn't add immediately, but saved me a lot of editing time when creating the 13 similar advanced actions for the click boxes (see Actions).
    v_current will store the digit of the current Click box (1 if the user clicked on the 1, X if he clicked on X..); and for all those genius-programmers here I really appreciate the fact that the Advanced Actions do not request me to make a difference between a number and a string when defining a variable  :-)

Objects

On the slide EnterCode, with the image of the push lock, I'll need (see Timeline in Gallery):
  • 13 click boxes on the 13 digits: do not create them all at once! Create one click box, configure it (inc. the attached advanced actions), and test it thoroughly. Only after that process duplicate it as many times as you need (and use my shortcut keys for aligning without a mouse Moving and Resizing Objects); believe me: that will save you a lot of clicks.
  • 1 click box over the C-button
  • 1 button Next
  • Text Caption Instruction explaining how to enter and confirm the code
  • Text Caption Warning to show up when the user enters more than 5 digits (in the same location as the previous caption)
  • Text Caption TooLess to show up when the user tries to confirm with the Next button and didn't enter 5 digits, also in the same location; in this text caption the user variable v_counter is embedded
On the slide ShowCode there is only a text caption to show the code. Beware: when embedding the user variables v_one....v_five be sure to set the length of each variable to 1 and no spaces between the variables in order to show the code as a sequence.

$$v_one$$$$v_two$$$$v_three$$$$v_four$$$$v_five$$

Actions

Tip: you can use the same label for an advanced action as the label for the object it is attached to, provided that you first label the object! If you try to label the object after you attributed the same label to an advanced action you'll get an error message! I forgot about this for the button Next, that is why you'll see there a different label for the action and the button, because I labeled the button after creating the action.

CB_1  and similar actions triggered by click box with same label (screenshots in Gallery)

Will need a combination of a standard action and a conditional action with multiple decisions:
  • increment v_counter and store the digit (1 for CB_1) in v_current (standard action) in decision Counter
  • store the digit in the appropriate variable v_one, v_two...., v_five  (conditional with 5 decisions First, Second, Third, Fourth, Fifth)
  • checks if the user didn't enter more than 5 digits, decision TooMuch
CB_Reset  (triggered by click box CB_C and eventually on Entering the slide EnterCode)
This is a standard action (see Gallery)
  • resets v_counter to 0
  • clears the variables v_one....v_five by using the variable v_void
  • shows text caption Instruction (that could have been made invisible by a previous advanced action)
  • hides text captions Warning and TooLess (that could have been made visible by a previous advanced action)
Bt_Next (triggered by button But_Next)
This is a conditional action, one decision with a Then/Next section (see Gallery)
  • checks if v_counter
  • if Yes the text caption Instruction is hidden and TooLess is made visible
  • if No the user is navigated to the next slide ShowCode

...you Leap


My work flow (had 2 slides with background and image on first slide), sequential:
  • created all the user variables and added comment to each variable
  • created click box CB_1, CB_C, button But_Next
  • created text caption Instruction and formatted it, used Duplicate to create captions Warning and TooLess on slide EnterCode
  • created text caption on slide ShowCode with the embedded variables (set each to length 1)
  • added a testing Text Caption on first slide that shows the variables v_counter, v_current, v_one......v_five;  it helps when testing to see those variables change in real time; this caption will be deleted later on
  • created advanced action CB_1 from Properties panel for click box CB_1: started with first 2 decisions (Counter and First), tested, then added decisions Second...Fifth, at last added TooMuch; here it was possible to test everything because the user can select the code "11111".
  • created advanced action CB_Reset from Properties panel click box CB_C and tested it in combination with CB_1
  • attached this action CB_Reset also to 'On Enter' for the slide EnterCode
  • created advanced action Bt_Next from Properties panel for button But_Next and tested it (still with only 1 as possible digit)
The following steps are the tedious, annoying ones because all the creative work is done. That is why often bugs will enter in this process, perhaps my tips will help to avoid some:
  1. duplicate click box CB_1 as many times as needed (here 12), label and position each click box over the appropriate digit
  2. open Advanced actions dialog box; duplicate action CB_1, change the label to CB_2
  3. because I used the variable v_current you only have to edit the first decision (Counter): change the statement "Assign v_current with 1" to "Assign v_current with 2" and that is it
  4. repeat that process (2-3) to create all the advanced actions CB_3....CB_Z; close Advanced Actions
  5. in the properties panel of the click boxes, change the attached action: because labels of the click box and the action are the same this would be easy.
  6. test again in all situations to detect possible bugs

Conclusion

This is the first time I tried to explain the way my 'advanced actions' brain is tackling the process, and I do not have any idea if this could help. That is why I really would appreciate if you take a minute to post your comment and suggestions. What do you think about a YouTube video to show how the extra user variable v_current did save me a lot of time while editing the similar duplicate actions for the 13 buttons.




 


Report Custom Questions - part 2

Will present 'Unleash Adobe Captivate's Full Power with Advanced Actions'

Intro

If you did not read the first part of this cycle, please do so now, because there I explained the basics of reporting custom question slides: Report Custom Questions - part 1
 
In this second part I'll explain how to report the scores of question slides that use static widgets. I have been posting several times about using those widgets. In the sample file I only use the extended versions of the TextArea, Checkboxes and Radiobuttons widgets, created by Jim Leichliter. You can download them for free on his website: Jim's blog
 
The work flow is pretty simple, if each slide is treated like the default Captivate question slides: either you have a correct, or you have an incorrect answer. Partial scoring is not possible in this case. Since the static widgets by their nature do not have the possibility to have a score attached to them, you'll need interactive objects to take over that role. But you need buttons anyway on score slides, those buttons will be used to play the 'scoring' role.
 
As a bonus I explain also how to make it possible to Retake the Quiz, and the user will only have to retake questions with incorrect answers.
 

Question slides with static widgets

 

Example

Watch this movie with 5 slides. After the introduction slide you'll have three question slides:
  1. MCQ1: Multiple choice with one possible correct answer, using the Extended Radiobuttons Widget
  2. MCQM: Multiple choice with multiple correct answers, using the Extended Checkboxes Widget
  3. ShortAnswer which will be checked on keywoards, using the TextArea Widget with variables
Last slide is the default Score slide for a Quiz. I configured the Quiz to allow 5 attempts, hence the Retake button. No multiple attempts on Question level, no Review to keep it simple :-) And to give you a lot of playtime: passing score is 80%, which means that you have to answer all questions correctly to pass.

How to create a score?

My work flow is really quite simple:
  • On the Question slide a Submit button triggers an advanced action to check if the answer is correct. 
  • If the answer is incorrect, a Next button (labeled NextVoid...) will show up that has no score attached, is not reported and thus no points will be added to the Total score.
  • If the answer is correct, another Next button (labeled NextOK...) shows that has the correct score attached and will be reported, added to the Total score.
Have a look at the Advanced Interaction panel I posted in the Gallery: you'll see three buttons for each question slide, only the NextOK.. buttons are reported and added to the Total score (here 20pts)

Description of the Question slides

MCQ1
This slide is constructed with the Extended Radiobuttons Widget, and has an associated variable v_MCQ1 that will store the answer chosen. Other objects on the slide are:
  • Text Caption Title_MCQ1 
  • Text Caption Question_MCQ1
  • Button Submit_MCQ1 that is visible when you are preparing an answer, it will trigger an advanced conditional action with the same name that checks the answer and shows one out of the two other buttons; you'll find the advanced conditional action Submit_MCQ1 in the Gallery
  • Button NextVoid_MCQ1, initially invisible will get visible (and thus enabled) when the answer is incorrect; this button has no score attached, is not reported which means that an incorrect answer will increment the score with 0 points
  • Button NextOK_MCQ1, initially invisible will get visible (and thus enabled) when the answer is correct; this button will be reported with a score of 5 points to be added to the Total score
  • Text Caption Right_MCQ1 that will show if the answer is correct, by the advanced action triggered by the Submit button
  • Text Caption Wrong_MCQ1 that will show if the answer is correct, by the advanced action triggered by the Submit button
MCQM
This  slide is constructed with the Extended Checkboxes Widget, and has associated variables Ac,AU,CP,FM,PS. Other objects on the slide are:
  • Text Caption Title_MCQM 
  • Text Caption Question_MCQM
  • Button Submit_MCQM that is visible when you are preparing an answer, it will trigger an advanced action with the same name that checks the answer and shows one out of the two other buttons
  • Button NextVoid_MCQM will be visible (and enabled) when the answer is (partially) incorrect or incomplete; this button has no score attached, is not reported which means that an incorrect answer will increment the score with 0 points
  • Button NextOK_MCQM will be visible (and enabled) when the answer is completely correct; this button will be reported with a score of 10 points to be added to the Total score
  • Text Caption Right_MCQM that will show if the answer is correct, by the advanced action triggered by the Submit button
  • Text Caption Wrong_MCQM that will show if the answer is correct, by the advanced action triggered by the Submit button
ShortAnswer
This slide is constructed with the TextArea Widget with variables, and has one associated variable v_Short. Other objects on the slide are:
  • Text Caption Title_Short 
  • Text Caption Question_MCQM
  • Button Submit_Short that is visible when you are preparing an answer, it will trigger an advanced action with the same name that checks the answer and shows one out of the two other buttons
  • Button NextVoid_Short will be visible (and enabled) when the answer is (partially) incorrect or incomplete; this button has no score attached, is not reported which means that an incorrect answer will increment the score with 0 points
  • Button NextOK_Short will be visible (and enabled) when the answer is completely correct; this button will be reported with a score of 5 points to be added to the Total score
  • Text Caption Right_Short that will show if the answer is correct, by the advanced action triggered by the Submit button
  • Text Caption Wrong_Short that will show if the answer is correct, by the advanced action triggered by the Submit button

Retake Quiz

Configuring the Quiz for multiple attempts and adding the Retake button to the Score slide will be fine for reporting the attempts, the new score to the LMS but because all slides are custom slides, they wi
ll not be automatically reset like the default Question slides. To reset the static widgets, you will need the extended versions, this is not possible with the versions coming out of the box with Captivate. But now you have the ability to let the user only retake the incorrect answered questions. My work flow:
  • I created a user variable v_void that is empty and will be used to reset the variables associated with the widgets
  • For each question an extra user variable is created, that will get the value 1 if the user answered correctly by the advanced action Submit (see example for the first question in the Gallery): v_OK_MCQ1, v_OK_MCQM and v_OK_Short
  • On entering a Question another advanced conditional action is triggered (Enter_MCQ1, Enter_MCQM, Enter_Short); this action checks the value of the v_OK user variable to see if the answer was correct. If the answer was correct, the situation when leaving the slide in the previous attempt is preserved: the given answer, the Text Caption with the correct feedback, the NextOK button with its score attached. When the user clicks the Next button, this score is added to the total score for this new attempt without having the user to re-enter his answer. If the answer was incorrect reset is done by assigning the user variable v_void to the variables associated with the widgets; feedback captions and Next buttons are hidden, Submit button is made visible. As an example you'll find the action Enter_MCQ1 in the Gallery.

Conclusion

Perhaps you'll ask what is the advantage of a custom question slide over the default question slides since the resulting score is again 'black-white'? Some reasons for a control freak like me:
  • having control over the buttons: one example Next button appears when necessary in the movie, no confusion between Submit and Next is possible
  • feedback is in the movie a text caption, but you can easily replace this by an image, a video...
  • the possibility to have the user answering only the incorrect answers on a second attempt is a feature often asked for on the user forum
What do you think?
 
 
 

 

 
 

Custom Play/Pause button in Captivate

If you are using CP9, CP2017 or CP2019: go to a more recent post which offers an easier and better workflow for this toggle button:

Intro

This a quick tip, to avoid me having to answer this question again and again on the user forum. It is pretty easy to have custom buttons to navigate to previous, next or even last visited slides, or to toggle CC. But the play/pause button is a bit trickier. The reason is that for this button 'twin' system variables are involved: rdcmndPause and rdcmndResume. In this post I offer three solutions. Watch the movie to see the difference/
 

Example

 
Watch this movie to judge the difference between the solutions. I reused some slides from a previous post (Playtime with audio and widgets) that have a bit complex and long timelines to allow you to test the Pause/Play functionality. You'll experience the three solutions in this sequence:
  1. on the first slide, clicking the Pause button, will make it disappear and the Play button will show up: simplest solution with two buttons
  2. on the second slide, there is only one button with the text 'Play/Pause) that is already a real toggle, but its aspect will always be the same
  3. on the third and fourth slide you'll find also a toggle button, but the text will change to show you are now pausing or playing

Work flows

Solution 1: Play button and Pause button

On the first slide at the start only the Pause button, labeled BtPause is visible, whereas the second BtPlay is hidden. If you expect the user to return to this slide, you'd better set this situation on entering the slide by another standard advanced action. Both buttons trigger a standard advanced action, PauseBt/PlayBt (see screenshots in the Gallery) with these statements:
  • Assign rdcmndPause with 1 (for action PauseBt) or Assign rdcmndResume with 1 (for action PlayBt)
    here you see why I call those system variables 'twins'
  • Hide BtPause   (for action PauseBt)  or   Hide BtPlay  (for action PlayBt)
  • Show BtPlay  (for action PauseBt)   or   Show BtPause  (for action PlayBt))
The buttons I used are custom image buttons, of course you can use whatever you want; if you replace the button by an image with a click box, you have to show/hide the image as well of course.
If you use this action on more than one slide, you'll have to create a duplicate action for each slide, because of the ID's of the buttons that will be unique on each slide.
 
Warning: do not try to put those buttons on top of each other, perhaps to simulate the behavior of a toggle button, because this will not function!


Solution 2: Toggle button with text 'Play/Pause'

The second slide has an example of this toggle, with the disadvantage that the user doesn't see which state the movie has: paused or not.
Here a conditional action PlayPauseBt is needed, with one single decision (see screenshots: both Then and Else images are available). 
 
IF:     rdcmndPause is equal to 0
If this is the case, the movie is playing

THEN:    Assign rdcmndPause with 1
the movie will be paused

ELSE:    Assign rdcmndResume with 1
the movie will resume playing


If you do not mind the fact that the button will always have the same aspect this is really the simplest solution, because the action has no reference whatever to an object. This means that you can use it multiple times without haveing to create duplicates or have editing work. 

Same remark: you can also replace this button with your custom button, perhaps replace the text by an icon etc.
 

Solution 3: Toggle button with text 'Play/Pause'

This button can be found on the third/fourth slide. This time I used a blank image button BtPlayOrPause1/BtPlayOrPause2 (one ID per slide), accompanied by two Text Captions: TCPause1 & TCPlay1 for slide 3, TCPause2 & TCPlay2 for slide 3. I need again a conditional advanced action, but reusing it will force you to make duplicates because object ID's are used in the action. In the Gallery you'll find screenshots for the action PlayOrPauseBt1 that is activated by the first toggle on slide 3. 
 
IF:     rdcmndPause is equal to 0
If this is the case, the movie is playing

THEN:    
Assign rdcmndPause with 1         the movie will be paused
Hide TCPause1                                 the text Pause will be hidden
Show TCPlay1                                  text Play will be visible
ELSE:    
Assign rdcmndResume with 1     the movie will resume playing
Hide TCPlay1
Show TCPause1

Conclusion

If you want me to create a template with the advanced actions, post a comment. These actions are pretty simple, only the labeling and editing part if you use them a lot in a project are bothersome. One of my secret hopes is that in a future version of CP it will be possible to insert interactive objects on a master slide and the issue with the unique ID's will be solved.