Custom Hotspot questions in Captivate 8


A couple of weeks ago I presented a session 'Enhance Effectiveness of Quizzes in Captivate 8' at DevLearn 2014. One of the subjects that I barely was able to tackle due to lack of time, is the creation of custom questions. You'll find several blog posts where I created custom questions using standard objects, widgets and learning interactions. On the forums I often suggest to replace the default hotspot questions by custom questions. And finally find the time to explain why I recommend this. The success of the Quiz blog posts and of this BYOL session at DevLearn make me wondering if an e-book with focus on Quizzing would be welcomed by the community? Looking for comments on that plan.


The default hotspot question slide has some limitations. Here are the ones I find most frustrating:
  • hotspots are always rectangular
  • it is not possible to have partial scoring
  • you cannot add shape buttons to that type of slide, because any space outside of the correct hotspots causes failure
Thanks to my favourite Captivate object, the shape button, it is pretty easy to create a scored custom hotspot question with
  • freeform hotspots
  • partial scoring, that can be reported to a LMS by SCORM
  • allowing to add shape buttons for more functionality

Why not?

What are the disadvantages of a custom hotspot question slide compared with the default hotspot question slide;
  • custom question slides always take more time (although shared actions can help), especially if you want to add all question functionality (Clear, Retake etc...)
  • if you like the animations that appear on clicked hotspots, they are not added automatically in custom hotspots, there is of course a way of showing the clicked hotspots
  • although the total score will be correct when using partial scoring, some quizzing system vars will consider each correct hotspot as being a separate question; you have to be careful when using a default score slide, in which you show number of questions/correct questions
  • it is not possible to use custom questions in a question pool


Watch this movie. After the intro slide you'll see two Hotspot questions. Both questions have partial scoring. The fourth slide is the default score slide, to show how each correct hotspot is considered to be a question as is the case with all scored objects. To remediate, I added a custom score slide as last slide (use Continue button on the 4th slide). I didn't create a Reset or Retake situation. If you want to replay, refresh the browser window. Good luck!

Concept Hotspot Question - version 1

This question slide has one big shape button behind four shape buttons that indicate the form of the four countries to be clicked. The big shape button when clicked, will track a wrong click. I used 3 variables for this question:
  • v_attempt: number allowed attempts; will be reused for second question, number is assigned by On Enter action
  • v_counter: counts the clicks, to be compared with v_attempt;  will be reused for second question, reset to 0 by On Enter action
  • v_wrong: counts the mistakes, is not reset because it will continue to increment on second question, is used on custom score slide.
Here you see the timeline of this slide. The correct hotspots, shape buttons, have been duplicated to create the covers that are normal shapes with a texture fill. 

For the incorrect hotspot (shape button) I created a conditional advanced action with two decisions:
  1. "Always" is a mimicked standard action, self-explanatory. Because this hotspot can be clicked multiple times, the last statement is necessary to place the playhead one frame back, in the active portion of the shape button.

  2. "ShowNext" checks if the number of allowed attempts is reached, and if that is the case will hide all the hotspots and shows the Next button.

For the correct hotspots, that allow only one click, I created a shared action with two decisions

  1. "Always" is a mimicked standard action, self-explanatory. The parameters are highlighted.

  2. "Checker" is similar to the second decision for the incorrect hotspot. Parameters are highlighted.

The On Enter action for this slide is a standard shared action that resets the value of v_counter and v_wrong to 0 and assigns a value to v_attempt.

Concept Hotspot Question - version 2

I will not explain this question as extensively as version 1 (maybe in a planned book about Quizzes). It has multiple incorrect hotspots, and uses an extra variable v_scorehot. Try to figure it out. As a tip, this was my timeline:


As always I welcome comments about this example. As mentioned in the Intro, I would also like to know if you'd appreciate a book explaining the design, the tweaking possibilities and custom questions for Captivate quizzing.

Reset Knowledge Slide


This post is for Captivate versions before 9. In version 9 real knowledge slides are introduced. In this post the workaround to use normal question slides as knowledge check slides is treated.

Not a shared actions post this time (still busy with the third post), but a quick tip describing a work flow that I already posted multiple times on the Captivate forums. It is an answer to this question:  "How can I reset a question slide immediately, if it is a pure knowledge check, no scoring". 


You are probably aware of the fact that the function 'Reset' in Captivate is only possible for the whole quiz, and has to be triggered by using the Retake button on the score slide. There is no simple way to reset one question, once it has been submitted. Before submitting it is possible to Clear the answer by the Clear button. For more details about question slides and score slide, check some of my previous posts:

Question Question Slides - part 1

Question Question Slides - part 2

For knowledge slides, where scores don't have to be saved, you will not want to insert a score slide. But if you can cope with the fact that all answers will be cleared also for other knowledge slides in the file, you can create a 'Reset' button for a slide, without having to show the Score slide. 

The Retake button will appear on the score slide if the attempts on quiz level are not exhausted. The attempts are tracked with a system variable cpQuizInfoAttempts.  That variable is incremented when a new attempt is started. 

The idea for the Reset action is simple: navigate the user to the score slide, and immediately back to the slide where he was answer in knowledge question. And that slide will be reset!

Example Movie

Watch this movie, to see the functionality of the Reset button. On each question slide you can use the two-step Submit work flow. Nothing will happen, you'll be able to Reset the answers as many times as you want. You need to click the Next button to go to the next Question. 

Setup Step-by-step

  • Edit the Quiz Preferences, set the number of Attempts to Infinite (or to a high number), it is not really necessary to show the Retake button. Be sure to hide the playbar, to check 'Show Score slide...' although you'll never show that score slide to the user, you need it. Do not allow Backward Movement. Check the two images below.
  • With the setup used in the example, you'll need to have the Next button visible. Do not drag it under the Clear button as I often advice to avoid confusion with the Submit button. 

  • You can use any type of questions, with one exception: Hotspot. Problem with Hotspot is that when the user clicks on the Reset button, it will be considered as a click on a hotspot (and the animation will appear). You see in the example that I even used partial scoring for some MCQ-multiple answer questions.

  • The setup for the question slides: I kept the attempts to 1, but changed the actions both for Success and for Failure to 'No Action', hence the need for a Next button. If you want, you can keep the 'Go to Next Slide' as Success Action, but if you have have partial scored slides, you have to know that partial correct answers will trigger the Success action, which means that the user will not be able to reset and correct his answer.

  • Create a shape button as Reset button. In the example movie I used one of the images from the theme as Fill for a rectangle shape with no stroke, to have a look that is similar to the embedded quiz buttons. To have this button on all the question slides, you can either put it on the Quiz Master slides, or put it on the slide before the first question slide, make it invisible (Properties panel), time it for the rest of the project. I choose for the second work flow, because the shape button gets an ID, can be shown/hidden as wanted. It is not possible to put it on the first question slide, but I made it visible with the On Enter action of the first question slide. More information about buttons on question slide is to be found in a previous blog post:

  • The advanced action triggered by the On Success event of the button Bt_Reset is pretty simple:
    • jumps to the Score slide, which will increment the variable cpQuizInfoAttempts, start a new attempt, clears all answers
    • returns to the original slide, using the system variable cpInfoLastVisitedSlide
  • To avoid the user seeing the score slide, you'll need at least one slide before the score slide, and prevent navigation to the last slide. In this case I added one slide, that has no navigation button. Because the Reset button is still visible, I use the On Enter action of this slide to hide it.


  • If you plan to use this action in multiple files, create a shared instead of an advanced action. It is easier to reuse a shared action because it is in the library which you can use as an external library.

  • This type of knowledge questions will probably be between content slides. You have to be aware that all answers are reset with each Reset button on one question slide. Maybe better warn the user if you allow free navigation with a playbar, a TOC or custom buttons.

Aggregating results TEB's in Captivate


This use case is an answer to this question on the user forum Aggregate the results of four text-entry-boxes on the same slide. I thought it to be a good illustration of one of my previous recommendations when preparing advanced actions: think about all possible situations. For that reason I'll explain two different scenarios. The example is created in Captivate 6 but can easily be transformed for 5 and 5.5. To make the rewind possible in the example, I used a third scenario that will not be explained. It is the most complicated one, because I couldn't use the system variable cpQuizInfoPointsscored in this case, that variable cannot be reset.


If you read the thread on the user forum, you'll know that four Text Entry Boxes are used to ask validated entries. Each TEB has its own Submit button, and the sequence is not imposed. The user can choose to have one or more TEB's blank, by just clicking on its Submit button. If you want to avoid blank entries, have a look at an old blog post where I explain the work flow to check  that: Where is Null

When all Submit buttons have been clicked, three situations are possible:

  1. a Success text and a button to the Next section if all 4 answers were correct
  2. a Hint text with a choice between two buttons: Review or Next
  3. e Failure text with only a Review button

The example has only 3 slides:

  1. 'Questions' with the 4 entry boxes and the initially hidden text containers and buttons
  2. 'ReviewSection'
  3. 'NextSection'

Play with it to see the different situations (use the Rewind button)

Here is the cheat sheet:

  • TEB1: Brussel, Brussels or Bruxelles
  • TEB2: Dutch or Nederlands
  • TEB3: 3 or three
  • TEB4: 8 or eight

Objects on Questions slide

In the example (Captivate 6) this slide has:

  • 4 TEB's with their associated variable (which I'll not use in the actions) and Submit button; the scenario to be chose depends on the number of attempts you chose here (Action accordion); I unchecked all captions in the Options dialog
  • 4 Questions (Text Captions)
  • Review button (used a shape from button category, added text to it): not visible, triggers simple action to jump to Review section
  • Next button: not visible, triggers simple action to jump to Next section
  • Three texts: Success, Hint, Failure (used shapes - added a character Sarah); not visible


Besides the variables associated with the TEB's, that will store the chosen answer, I created  5 user variables:

  • v_1, v_2, v_3, v_4 with an initial value of 0, will get the value 1 when the user has submitted that TEB; those variables are not necessary in the first scenario
  • v_total: initial value=0, will store the total number of TEB's that have been confirmed by their Submit button

Scenario 1

For this scenario the attempts for all the TEB's are set to 1.This means that the user can click only once on the Submit button, cannot change his mind.

Events and variables 

Each Text Entry Box has two events: On Success and LastAttempt. In this scenario it is possible to trigger the same advanced action TEBCheck by both events and for each TEB. 

I used the variable v_total to count the number of times the Submit button is clicked, each one will only once result in an action because the attempt is set to 1. 

To make it possible to check the number of correct answers, I checked 'Include in Quiz' in the Reporting accordion with score left to 1point. That way the system variable cpQuizInfoPointsscored can be used to check the number of correct answers.

Advanced Action (conditional) TEBCheck

This action has 4 decisions (see screenshots in Gallery) - ELSE is never used

  1. Always: is a mimicked standard action, to increment v_total
  2. TextCorrect: checks if both variables v_total AND cpQuizInfoPointsscored have the value 4 which means that all TEB's have been submitted and all answers were correct. Then the appropriate text and the Next button are made visible (I also had to make the actor SaraSmall visible)
  3. TextHint: checks if all TEB's have been submitted (v_total =4) AND if the score (cpQuizInfoPointsscored) equals 3. In that case the appropriate text, the Next and the Review will get visible
  4. TextFailure: checks if all TEB's have been submitted (v_total =4) AND if the score (cpQuizInfoPointsscored) is less than 3. The appropriate caption will get visible and the Review button

There is no need for ELSE, if none of the conditions is fulfilled the user can just go on submitting TEB's because in that case v_total is not yet equal to 4. Also there is no need to hide text/buttons because only one of the decisions can result in a positive answer, they are mutually exclusive.

Note: I wanted to keep this scenario as simple as possible, only one advanced action that is triggered by 8 events (Success, LastAttempt for each TEB). Real programmers could blame me for this, because for the LastAttempt, which is in reality a Failure event, the second decision TextCorrect can never be fulfilled! So for the purist: create two different advanced actions, and for the LastAttempt action you can delete the second decision, which results in 3 decisions for that action instead of 4 for the Success action I described here.

Scenario 2

If you want to allow more than one attempt the previous scenario would not work because the value of v_total is increased with each click on a Submit button. Example: if you allow 2 attempts for each TEB, the value of v_total would result in 4 if both attempts were used on two TEB's, and that is not what you want.

Events and variables

That is the reason for using the variables v_1....v_4 that will be set to 1 each time the Submit button is clicked for the corresponding TEB. And the counter v_total will not be created by incrementing, but by calculating the sum of the 4 variables v_1...v_4. That way the value can never exceed 4. 

Because the variable v_... depends on the TEB, now I'll need to create an advanced action for each TEB: CheckTEB1, CheckTEB2, CheckTEB3, CheckTEB4. For the lazy user: you can use this action both for the Success and LastAttempt event; for the purist: create a slightly different action for the LastAttempt event, in which you delete the second decision TextCorrect (see note in first scenario).

Advanced Actions (conditional) TEBCheck1 .... TEBCheck4

Those actions have the same 4 decisions as in the first scenario, even better, only the first decision (mimicked standard action) has to be changed. You have to assign the value 1 to the corresponding variable v_1.... v_4 and the variable v_total is calculated with 3 subsequent Expression statements. Remember: no functions like Sum are available, and you can use only one operator (+) in a statement, hence that sequence of Expressions.

Have a look at this Always decision for the first action TEBCheck1

Use the Duplicate function to create the similar actions TEBCheck2... 4. The only editing to be done is to change the variable highlighted in the screenshot! Nothing else has to be edited, but be sure to attach the correct action to the correct events.

Report Custom Questions - part 2

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


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



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

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
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
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.


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?



Customizing Review Messages in Captivate 5.5 or 5.0


This is the first post since the release of Captivate 5.5 and eLS 2.5. For this reason I worked out an example for both versions. I suppose the work flow used for 5.0 will also be functional for 4.0 but honestly I did not try it out. As you probably already know, the default Question slides did change with 5.5 but are the same for 4.0 and 5.0.

This post is (again) meant as an answer on yet another question on the user forum that pops up regularly: 'How can I have an individual Review message per slide?' Indeed, whereas it is perfectly possible to customize the Success and Failure captions for each question, this is not the case by for the Review Messages. The only control you have are the small sentences (see screenshot Review Messsages for CP5.0 in the Gallery), but with the exception of the mentioned given answer and correct answer for incorrect results the phrasing will be always the same on each question slide.

I will have to use advanced actions to achieve this goal, but they are very simple standard actions. You really do not need programming skills, be reassured.

Control of Question slides: what is (not) possible?

You are perhaps aware of the limited control concerning Question slides: if you watch its timeline quite a lot is contained in that single gray line! Let's try to enumerate:

  1. all the necessary text captions (you can format them after selecting on the stage but they do not appear separately on the timeline) for title, question, answers
  2. buttons you choose (Clear, Back, Skip, Submit)
  3. success/failure/hint captions
  4. functionality to show the proper captions when the user clicks on Submit and to pause the slide until
  5. user clicks again on the slide or enters Y
  6. this last action triggers the Success or Failure actions you'll find in the Quiz Properties (see screenshot 3 in the Gallery), default setting is to Continue

The playhead will only be released by the last user's activity (6), and execute the action set in the Quiz Properties based on Success or Failure. All other activities are before that pausing point, set by default at 1,5secs.

If you delete the Success/Failure captions, 3-5 will be skipped, and the click on the Submit button will immediately release the playhead and execute the proper action set in the Quiz Properties. In this thread on the user forums, I explained how you can use this possibility to show images instead of the Success/failure captions during the remaining time after the pausing point:

Using custom correct/incorrect images

For normal slides one has the possibility to execute an advanced action on Enter and on Exit of the slide. For Question slides this is only possible on Enter (used that in previous blog posts). But you can execute an advanced action both on Success and on Failure, that will be executed either:

  • on clicking the slide or pressing Y if the Success/Failure captions are present and will be shown
  • on clicking the Submit button is there are no Success/Failure captions.

This last functionality will be used in my work flow, both for CP5.0 and CP5.5.

Work flow - general

I did not use the Success/Failure captions to simplify the work flow but deleted them for both versions in the example Quizzes. But everything will functional as well if you keep those captions.

  1. On each question slide create two Text Captions (or Shapes with text), initially set to invisible in the Properties panel; those are the customized review messages on Success/Failure. I preserved the default Review Message for skipped or uncomplete answers. I used the labels OK1, NOK1 (for Question 1),OK2, NOK2, OK3,NOK3
  2. Setup the Quiz preferences: be sure to check the Review possibility
  3. Do not show the Back button (because in this simple work flow, the review messages are set to be visible on when exiting the question slide, going back by the user would show them before reviewing); that is also the reason why I did not use a playbar.
  4. Set up the Review messages - different tips for the 2 versions, look below in the specific work flows
  5. Create two Advanced actions for each question slide, I labeled them Correct1, Incorrect1 (for question 1), Correct2, Incorrect2, Correct3, Incorrect3
  6. In the Quiz Properties, Actions accordion (screenshot 3) replace Continue by those advanced actions

Work flow - Captivate 5.5

Please, play this movie to see the result. Be sure to click the Review button on the last slide to see the customized review messages.

I used a customized Radial gradient as background on the master slide, with 4 stop colors, Reflect as Pattern and I edited the Gradient handle. Shadows are applied to the Captivate title and all buttons in this movie.

Typical settings here, referring to the steps described in the General workflow

  • Step 1: I used a rounded rectangle with a radial, customized gradient fill (two color stops and Reflect as pattern) and inserted Text for step 1

  • Step 4: In Default Review settings, the correct/wrong answers are indicated by checkmarks, not by a Review message like in previous versions, with the exception of the Incomplete message. I kept the default settings here.

  • Step 5: Both advanced actions are visible in the Gallery: Correct1 and Incorrect1. The first statement shows the appropriate shape (OK# or NOK#). The second statement is 'Go to Next Slide'. If you do not include this statement, on executing this action, the playhead would continue through the rest of the slide timeline after the pausing point. The user would then see the Review message during that time, which is not what is wanted.

  • Step 6: This step is illustrated in screenshot 3 of the Gallery.

Work flow - Captivate 5.0

Play the movie to see the result, please. Be sure to click the Review button on the last slide to see the customized review messages.

I used one of the default Background Images 'DryPaint' but changed its Hue and Transparency. I replicated the shadow feature from the previous movie by applying the Dropshadow effect to the title Captivate on the intro-slide.

All steps are similar to those for 5.5 with these exceptions, be sure to check my discovery for step 4!

  • Step 1: Used the Ivory Text Captions here. 

  • Step 4: Contrary to version 5.5 review messages are now displayed in all circumstances. But I didn't want to display the default Correct message, since I already had a better Text Caption. And this is where I discovered something about 5.0 that I want to share!
    I deleted the Correct Message in the Review Messages (screenshot 4 in the Gallery) and what happened? When reviewing all questions and answers disappeared, only my proper Review Text Captions and the Skip button were visible! I thought the project became corrupt, and recreated it, with the same result. The solution is to enter at least one space in the Review message you do not want to show up. You are warned, do learn from my problem, please.



Why didn't I use the On Enter event on the next slide to trigger an action to show the message on the previous slide? This is not possible, you can only show objects with an action on the slide where this object is really.

If you want to allow Backwards movement, the situation will be a little bit more complicated, because you will need conditional actions to show the messages. I wanted to keep this solution as simple as possible. And it allowed me to illustrate the difference in Review between versions 5.0 and 5.5

As always, I really would appreciate feedback. Is this post too basic, do you like it, do you want me to extend it with possibility to have Backwards navigation enabled, please let me know!

Customized Progress Indicator


Do you use the Progress Indicator for Quizzes? I'm very frustrated about that indicator: you have the choice between a Relative or an Absolute indicator, you can adjust the style using the Object Style Manager, but... no way to change the phrasing of that indicator. It is always 'Question X of Y'. If you are an unhappy Captivate-user that needs to localize a lot of courses, this is really annoying. My Dutch-speaking students want a Dutch indicator, my French students want a French indicator etc.
It is really not so hard to create your own Progress indicator for Question slides, using rather simple advanced actions and a dedicated Master slide. In this tip I will explain the work flow step by step


Play this movie to check the result. In this Quiz I do have 6 question slides. The first 3 questions use a master slide with a progress indicator in English, the last 3 use a similar master slide but with an indicator in Dutch. Do not panic: all questions are in English.

Work Flow

  • User variables: create 2 user variables, I labeled them
    • v_begin  to store the slide number of the last slide immediately before the first question slide 
    • v_current  to store the number of the question; since there is no accessible system variable for this information I will have to detect it from the current slide number

  • Advanced actions: create 2 advanced (standard) actions, I labeled them:
    • IndBegin: to be triggered on entering the last normal slide before the first question. It has only one real statement: to store the current slide number (system variable rdinfoCurrentSlide) in the user variable v_begin. First image in the Gallery shows this action.
    • IndCurrent; to be triggered on entering each question slide, it calculates the question number and stores it in the variable v_current. I do use the system variable rdinfoCurrentSlide again combined with the fixed  number stored in v_begin. Second image in the Gallery shows this action.

  • Attach the actions IndBegin to On Enter for the last slide before the questions and IndCurrent to all Question slides as the same On Enter action (can be done in one operation, select all the Question slides and use the Properties panel, Action accordion)

  • Master slide: create the master slide to be applied to all the Question slides. In this example I created 2 Master slides for the English and the Dutch questions, both based on the General master slide (for the background). Insert the text caption that shows the sentence to be used for the Progress indicator. The used variables in my Progress Indicator (see third image in the Gallery) were:
    • v_current the current question slide number, calculated with IndCurrent action
    • cpQuizInfoTotalQuestionsPerProject is a Quizzing system variable that shows the total number of questions in the project, you can of course also introduce this manually but I do not like to count myself
    • cpQuizInfoPointsPerQuestionSlice this is a bonus, not necessary but extra information for the learner, a Quizzing system variable as well. 


Hope you liked this small tip, and will be inspired to use variables on master slides.


Extended widgets for Custom MCQ and T/F questions


A while ago first part of my soap about using Widgets to create customized Question slides, types Multiple True/False and Multiple Choice: Widgets and Custom Question - part 1 was published. The used widgets (included in Captivate 5) were the Radiobuttons and the Checkboxes widgets. Second part was about using the TextArea widget: Widgets and Custom Questions - part 2 for Short Answer and Fill-in-the-Blank questions. Those default widgets cannot be 'reset', which means that you can change their associated variables using advanced actions, but the change will not be reflected on the stage for the user. If you want to offer the user multiple attempts that can be annoying. One of "our" great widget developers, Jim Leichliter offered an extended version of the TextArea widget as an answer to my complaint. This proves (again) how friendly and dynamic our Captivate Community is. In my last post I blogged about the improved functionality of this extended widget. And I got a positive answer on my request if he would be willing to extend the Radiobuttons and Checkboxes widgets as well. Again, he offers those extended widgets for free on his blog site:

RadioButtons Enhanced
CheckBoxes Enhanced

Both enhancements were created using the 'awesome cpGears widget framework' (citation of Jim), by another Captivate friend, Yves Riels. Find him on his blog, I love his InteractiveLabel and NotePad widgets a lot, but he has a lot more widgets to offer: Flash-factor

As promised to Jim, in this blog I'll try to explain the added functionality of those enhanced Radiobuttons and Checkboxes widgets. And watch out for an important warning later on. For those contaminated with AAAD (Advanced Actions Addiction Disease) detailed explanation of the actions are explained in this companion article:

Extended Radiobuttons and Checkboxes Widgets for Custom Questions


Play this SWF to get an idea of the enhanced Retry options. I did use the same quiz as in the original blog post (part 1 - see link in the Intro). But in the original version there was only a Review option, this time I added a Retry option with 3 possibilities: either change the entered answers, or start from scratch (default work flow when choosing Retake in a regular Captivate Quiz), or preserve the correct answers and only retake the incorrect ones. Explore, and would love to hear what you think about it.

Widgets and variables

Three images in the Gallery do show the configuration of the widgets I used:

  • MCQ1: is a RadioButtons Widget used for a Multiple Choice Question with only one correct answer (second question in the movie); the associated variable is labeled MCQ1Answer (case sensitive) and the possible values are different app names. The configuration is the same as for the widget coming with Captivate. Difference is that when you change the value of the variable MCQ1Answer, it will be visible on the slide. If you choose the option Retry Totally, where you can start from scratch, an advanced actions will assign the value 0 (zero) to MCQ1Answer and the result will be that none of the radio buttons is checked on stage.

  • MCQM: is a CheckBoxes Widget used for a Multiple Choice Question with multiple correct answers (third question in the movie); the associated variables (one per option) are labeled CP,SB,PS,RH,Ac (case sensitive) and have to appear in the same sequence as the values Captivate 5,Soundbooth CS5,Photoshop,RoboHelp 9,Acrobat X. By resetting the variables to the value 0 (zero) all check boxes will be unchecked on the stage as is the case for the Retry option 'Totally.

  • Radio1: is one of the 4 RadioButtons Widgets used for the slide with multiple True/False questions (first question in the movie) - the others are labeled Radio2, Radio3 and Radio4; each had an associated variable, labeled TF1 (TF2, TF3, TF4); assigning the value 0 (zero) to a variable will deselect the radio buttons on stage.


  • Do not stack an interactive object on top of the widget(s) or they will not be functional. An example: if you put a click box over a widget that covers it all up, the widget will not work.

  • You can have multiple widgets on a slide, and they can cover up partially; this is the case for the slide with the multiple True/False questions as you can see in the image in the Gallery.

  • Do not bother to resize the widgets if they seem not to display everything, on review or after publishing everything will be OK! Look at the fourth image in the Gallery: the word False seems to be cut off, but shows up all right in the movie.

  • Formatting can be tedious: have a look at the Radio1 widget: I changed the font, font size, color (Dark blue #270067) and the 'highlight' color to the same color as the blueish grey of my background (#E3E3E3) to have it blend in. Why do I tell you the color code? If you are not using one of the sample colors in the color palette, the only way to have consistent colors is to type in the code. An example: to search for the code of the background I had to sample that color using the Pick Color tool that is available in the color palette for the Fill color in the Toolbox (vertical toolbar normally at the left of the stage). Because that color will not be automatically added to the samples in the color palette in the Widget dialog box, and since there is no Pick Color available in that box, the 'simplest' way to have the correct color is typing it in. You imagine some of my feature requests ;-)

  • NEVER DUPLICATE A WIDGET. Yes I'm shouting, because trying to reduce the formatting labour for the 4 RadioButtons widgets on the True/False slide, I did duplicate a widget. Every formatting was kept, and thought I only had to change the associated variable, because all other settings are the same. This will not work! The variable in the duplicate will never get a value. Do not follow my example this time, always insert the widget again and again and again. Change the formatting settings again and again and again. After a while you'll know all the color codes by heart.... 

And now...

waiting for the third episode: using dropdown and combobox widgets to create custom questions...


Extended TextArea Widget: more functionality


A couple of days ago, I "talked" about the TextArea widget coming for free with Captivate 5 for creating custom Fill-in-the-Blank and Short Answer Question slides. At that moment I told you that I did regret that it was not possible to change the associated user variable by an advanced action and have this visible in the TextArea Widget. Just when I was wondering if I would dare to ask some of the Widget princes of the Captivate Community to extend the functionality of this widget, Jim Leichliter simply offered such an extended version on his website: TextArea Widget with variables. It is a wonderful example of our dynamic community, and I'm so grateful to be part of it.
In this blog post I will show the added possibilities for the same Quiz as in the previous post. The changes to the advanced actions and the new to be created variables are be explained in this article published with the Adobe Community Publishing app. Please check my conclusion:


Example movie

Play this movie with the same 4 Question slides, described in the previous movie. It has an extra slide after the score slide with new functionalities:  3 possibilities to Retry the quiz, please try them out. This was not possible with the original CP-widget. And I remember questions on the user forum: is it possible to have users only retaking the incorrect questions? That is possibility 3 in this movie.

Extension of the widget

This extension allowed me to manipulate the content of the TextArea visible on the slides. With the standard Widget, the text entered in the TextArea is stored in the associated user variable, but if you change that user variable this will not be reflected on the slide. If you watched the movie in the previous blog post, and tested the Retry work flow, you'll have noticed that the answers introduced before remained on the slides. You were able to change them manually, but I couldn't clear the text or replace it.
With the extension this is possible. Here is my work flow for each of the 3 possibilities for Retrying:

Possibility 1:

The answer given the first time remain on the slides, the user can edit them - this was the only workflow possible with the default TextArea Widget, the user variable has not been changed.

Possibility 2:

All answers are cleared. I created extra user variables:
  • v_pos: will store the value 1, 2, 3 corresponding with the Retry possibility chosen, will be used in a conditional action
  • Start: has the text 'My answer: ' as content; in an advanced action the variables associated with the Short Answer TextArea widgets on the first 3 question slides will get this content, replacing the text input by the user, thus clearing the previous answer
  • Null:  is a user variable that is empty: in an advanced action the variables associated with the 3 widgets in the FIB Question will get this content, thus creating empty fields again.

Possibility 3:

Only incorrect answers are cleared, using the same user variables and technique as in possibility 2; correct answers with the given score will remain, using similar statements as for the Review work flow.

What next - Ideas?

One comment was about possibility to report to a LMS with custom questions: this is partly possible, will try to post my experiences shortly. But there are more widgets in the treasure box coming with Captivate to explore too. Please do not hesitate to comment or let me know your ideas.

Widgets and Custom Questions - part 2


As promised, here is the second but not last part of my soap about using (free) widgets to create customized questions. One of the most versatile widgets for this goal is the TextArea widget, it will be the only 'star' today. Not only is it a very fine alternative for Text Entry Boxes because it allows for better formatting, text wrapping and if necessary the appearance of a vertical scroll bar, but it can be associated with a variable, which makes it accessible ...for advanced actions!

I will illustrate the use of the TextArea widget for Short Answer questions with a lot more scoring options than the default Short Answer question and for Fill-in-the-Blank questions.

In this blog post I will explain how to use this widget and its possibilities, In detail explanation of the advanced actions can be found in this article

Using TextArea widget for Custom Questions 

Example movie

Explore the TextArea widget by playing this movie. It has and intro-slide, 4 question slides and a score slide:
  1. Short answer question (roundtripping): score will be based on keywords, all keywords have to be in the answer to get the score.
  2. Short answer question (languages): partial scoring but also on keywords, each correct keyword adds to the score
  3. Short answer question (web apps): only one out of 2 keywords needed to get the score
  4. Fill-in-the-Blank question (twitter): with partial scoring, each correct word adds to the score

On the score slide you will be able either to Review the questions or to Retry all questions and increment your score.

TextArea widget

This widget can be associated with a user variable, but you will have to define that variable separately (Project, Variables), same way I described for the Radiobuttons and Checkboxes widgets in part 1 (Widgets and Custom Questions - part 1). The first image of the Gallery shows the properties of the widget used on the first question slide (about roundtripping), WidgetRound, . Those properties are easy to configure, and the user variable is v_roundtrip. When exploring this widget I was excited by the fact that this variable will store the complete text that is entered. This looked like a promise for multiple possibilities in Short Answer questions. I never used the default Short Answer question because the score can only be attributed if the Short Answer is totally correct! And this is rarely necessary as I heard as well from other users on the forum. Usually the short answer should get a score when it mentions some keywords, not when it is exactly the same as the "correct entry".

Tip: while exploring this widget I detected that it will only be functional if it has its place in the Z-order (stack order) on the timeline above all interactive objects. In the Gallery the second image shows the Timeline of the first question slide about roundtripping. On this slide ShortAn1 you'll see the stack order from bottom to top:
  • TitleSA1 = title of the slide (text caption)
  • Quest1 = question (text caption)
  • BtSubmitRT = button Submit (interactive)
  • BtContRT = button Continue (interactive)
  • WidgetRound = TextArea Widget
  • RTFeedback = text caption with Feedback (non interactive)
  • ScoreRT = text caption showing the score (non interactive)
  • RetryRT = text caption that will show up if the question is retaken (non interactive)

If you switch the place of the Widget with one of the buttons, it will not be functional! I had to put the three last captions on top of the widget because they are partially covering up the widget's text box when they appear. They do not interfere with the widget's functionality because they are not interactive.

Question slides - description 

1. Short answer - all keywords necessary

This question has a score of 5 points. This score will be attributed if the answer contains both the keywords Photoshop AND Soundbooth. Probably some users will also add Powerpoint, but this will not be taken into account for the score.  It is annoying that not only the names of user variables are case sensitive but also the values! I assumed that users could type both Soundbooth and soundbooth, Photoshop and photoshop to create the unique but complex condition for the Submit button. You can see the settings for the Widget and the objects on the timeline in the Gallery.
The Buttons Submit and Continue are timed, the Continue button will only appear after the Submit button has been clicked, same setup as described for the custom questions in Part 1.

2. Short answer- partial scoring

Up to 4 keywords can result in a score, each keyword adds 2 points, the max. score thus being 8 points.
Setup of the widget and the objects on the timeline are the same as for the first question. The big difference is of course the advanced conditional action attached to the Submit button. Here it is a combination of 4 different decisions, one for each keyword.

3. Short answer - one out of two keywords

Two possible correct keywords (Flash + Dreamweaver), but the user needs only to have one mentioned in his short answer. The situation is the same as for the first Short Answer, with one condition in the setting 'Any of the conditions true', but again taking into account the case sensitivity. Widget Properties and objects on the timeline are similar to the first question.

4. Fill-in-the-Blank - 3 fields with partial scoring

In the third image of the Gallery you will see the Timeline of this slide, that uses 3 instances of the TextArea Widget. Perhaps you wonder why I prefer TextArea to Text Entry boxes? The user input in a TEB has to be confirmed, either by  a Submit button or by a shortcut, which is not the case for TextArea. The user can change his input if he wants and the value of the associated user variable will be adapted in real time.
Possible issues: you'll have to try a little bit to have the right size and position for the widgets. I first typed the correct terms and positioned the widget on top of those, but had to adapt the position even with the same font/fontsize.
In this FIB you cannot give the user the possibility to choose from a dropdown list, only to type the answer.

Partial scoring is however possible, the advanced conditional action attached to the Submit button is rather similar to the one used for the second question (Short answer with partial scoring). Again you have to take into account the case sensitivity.

Results Slide

The results slide has the same setup as described in my first blog post about Widgets and custom questions. To allow the Review/Retry I used a user variable v_try that will have 3 possible values:
  • v_try = 0  is inital value, when the user takes the quiz for the first time
  • v_try = 1  when he retakes the quiz
  • v_try = 2  when he reviews the quiz

Those values will be used to re-initialize each question slide (see article).

One drawback of the used widget: it is not possible to reset the value of the variable to void/null/empty! You can reset the associated variable to a Null value, but this will not be reflected in the display of the TextArea on the slides. Once the user has entered something, it will stay there until he changes it himself. You can watch this with the Retry functionality in the sample SWF.

Using the button widget: some ideas

The button widget is no longer available in later versions of Captivate, but can be replaced almost in all use cases described in this article by a shape button.


This is not the promised second part of the use of widgets for customized questions. You know that I find some inspiration in the user forums, and last week I discovered another hidden gem, coming for free with Adobe Captivate 5: the deceptively simple 'Button'-widget. The Adobe team seem to like hiding their gems, and always wonder why? Few people, except the widget wizards of course, do realize that this Button-widget is not an interactive widget at all, but a static widget. Check it out for yourself: in the Widget panel, set the filter to Static and you will be able to verify my statement ((first image in the Gallery). I'm used to tell my students always to verify teacher's statements

Non-interactive button?

A lot has already been written about the difference between static, interactive and question widgets (a few links on the blog get you to those Widget kings), will not bother you with it. But want to explain why it is great news that this button is a static widget. Being static doesn't mean that the user cannot interact. If you have read the blog post about the use of the (static) widgets for custom questions you will know that. But the fact that is a static widget will allow you:
  • to use it on question slides, where interactive objects cannot be inserted
  • to use it on master slides, that have the same restrictions as question slides
Isn't that great news?

Configuring the widget

There are quite a lot of configuration possibilities as you can see in the second image of the Gallery that shows the settings of the buttons I used for the example of the Menu on the master slides. It is pretty straightforward to use, I only lost some time finding out how to put in more than 4 characters on the button. You have to click in the Preview space on the button and you'll see the text box appearing (is visible on the screenshot). There are a lot of small arrows of all kinds that allow you to move the text box, to increase its size and even to increase the size of the text itself. In the list of actions that can be performed you'll find navigation, open File/URL and send email (here I used Jump to slide).

Use on Question slides

Lot of users get frustrated because it is not possible to insert any interactive object on a question slide or on the score slide. If the action you want to trigger by this object is a navigation action, or opening a URL/file, or sending an e-mail than you can use the same Button-widget as used on the Master slide example.
Some ideas:
  • to allow user to get back to an instruction slide when failing on a question
  • to open another file on success/failure of a quiz

Example Menu on Master slides

In the example that you can watch here, I used the button widget on a Knockout Master slide (see blog post Create and Use a Knockout Master slide) to create a menu. I do have 2 very similar master slides, the first is used for the introduction slide, the second has also a button (same widget) to go back to the first slide and is used for all other slides.
I would love to hear how you do use this widget!