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

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.

Display Time information

Update: if you use a recent version of Captivate, have a look at this updated post:

Display Time in CP2019

Intro

Again I want to post a detailed explanation to a question on the user forum, quote: ".... if there was anyway to insert running time".
The user did want to show the information that is normally in the TOC about the total duration of the project and the elapsed duration. This duration is the one that shows up in the Project Info panel (in Captivate 5.5) or in Project Info in the Preferences dialog box (Captivate 5.0). It is calculated as the sum of all the slide durations. Same for the elapsed duration that is calculated as the sum of the slide durations of the slides before the current viewed slide.

This is not the same as the real time spent by the user viewing slides, project.  This time can be made visible as well.

Example


Play this movie and watch the information I show on the slides:
  • in the first Text Caption top left, the total project duration like it is displayed in a TOC or in the Project Info
  • in the second Text Caption top right, the elapsed duration calculated as the sum of the slide durations before the current slide, with a percentage as well (how much of the movie has been viewed)
  • in the third Text Caption beneath the second one the real time already spent on the movie

Work flow


Variables


System variables used in this solution are:
  • rdinfoFPS : the framerate of the Captivate file (default is 30fps)
  • rdinfoCurrentFrame : the number of the frame where the playhead sits
  • rdinfoFrameCount : total number of frames in the project
  • cpInfoElapsedTimeMS : time elapsed since the published movie started, in milliseconds
 

I started creating some user variables
  • v_total : will store the total duration (in seconds) of the project 
  • v_total_min : will store the total duration of the project in minutes, I could have reused the user variable v_total, but the advanced actions will be easier to read
  • v_help : to store the frame number of the first frame of a slide (or when clicking the last 'Calc' button); this variable is reused a lot of times, contrary to the first 2
  • v_elap : the elapsed time (in seconds) calculated from the slide durations of the previous slides
  • v_elap_min : same elapsed time but in minutes; again I could have reused v_elap as well
  • v_perc : percentage of movie that has been viewed, calculated from v_elap and v_total
  • v_real : real time (in seconds) since the start of the movie; to illustrate what I mean by reusing, I used this variable if necessary also for the real time in minutes

Hide-and-Seek

Once I blogged: Playing Hide-and-Seek with Captivate objects and I used the information explained in that post to save time:
  • The first Text Caption, showing the total Project duration is really only on the first slide with a timing 'Display for rest of Project'; there are really 2 text captions:
    • NoMinutes: displays the information when the total duration is lesser than 60 secs, this caption is on top of the second Text Caption in the Timeline, thus hiding this caption that has exactly the same position and sidze (Transform accordion in Properties panel)
    • YesMinutes: displays the same information in minutes when appropriate, and will become visible by hiding the text caption NoMinutes
  • The text caption showing the Elapsed time and the Percentage is only on the second slide (see timeline of this slide in the Gallery), also with the timing  'Display for rest of Project'; again I have 2 versions of this caption
    • ElapMinNo : displays the information when the elapsed duration is lesser than 60 secs, this caption is on top of the second Text Caption in the Timeline, thus hiding this caption that has exactly the same position and sidze (Transform accordion in Properties panel)
    • ElapMinYes : displays the same information in minutes when appropriate, and will become visible by hiding the text caption ElapMinNo
  • The text caption showing the real time is also only on the second slide (see Timeline), with timing  'Display for rest of Project'; the 2 versions of this caption with same size and position are:
    • RealMinNo : for this information in seconds, sits on top of and hides
    • RealMinYes : for the information in minutes, will be visible when RealMinNo is hidden

Advanced actions

Only two conditional advanced actions are needed, I added them as images in the Gallery:

StartOne
This action will be triggered on entering the first slide, and its goal is to calculate the total project duration from the system variables rdinfoFrameCount and rdinfoFPS and show the appropriate Text Caption (NoMinutes or YesMinutes). Since this is a fixed time, nothing has to be changed later on. The action has two decisions:
  1. TotalCalc: which is really a standard action, where the total duration of the project is calculated
  2. Minutes: checks the value of v_total, if it is greater than 60, the duration in minutes is calculated and stored in v_total_min and the Text Caption NoMinutes is hidden, thus revealing YesMinutes
StartNext
This action is triggered on entering all slides except slide 1. It calculates both the elapsed and the real duration that will be shown  on entering each slide (like on the TOC). The system variable rdinfoCurrentFrame is used to store the number of the first frame of the slide in the user variable v_help. Both the duration in seconds and the percentage are calculated. The value of the real time is calculated in seconds. This action is also triggered by the Calc button on the last slide. It has three decisions:
  1. Elapsed: again a mimicked standard action that calculates the elapsed duration from the variables v_help and rdinfoFPS, the percentage from v_elap and v_total, the real time from cpInfoElapsedTimeMS
  2. ElapMin: checks the value of v_elap,  if it is greater than 60, the duration in minutes is calculated and stored in v_elap_min and the Text Caption ElapMinNo is hidden, thus revealing ElapMinYes
  3. RealMin:  checks the value of v_real,  if it is greater than 60, this variable is recalculated in minutes, and the Text Caption RealMinNo is hidden, revealing RealMinYes

Conclusion

I'm prepared to create a template with those advanced actions needed if you like my solution. My decision will be made based on the comments left on this blog :-)





 


Micro-Navigation in Adobe Captivate

Update

Fpr more recent versions, there is a new article available, accent on HTML5 output. Have a look at:

Introduction to Micro-navigation

This introduction is followed by an example where one shared action (was not yet available when this first article appeared) can be used both for Forcing first view on slides, or for playing slide audio only the first time.

Intro

One of my Captivate friends asked to show him by example the possibilities of navigation using frame numbers. Great idea for a blog post, hope it will help you too.
Every Captivate users does know how to navigate to the next, the previous or another slide. But navigation within a slide is a bit more complex, that is what I call 'micro-navigation'.

Example

Play this movie to understand what I will try to explain. It has 5 slides:
  1. slide Intro with an Effect on the Text Caption, try the button Replay to see the playhead returning to the first frame
  2. slide Choice where you'll be asked to choose a type of object; to illustrate the Replay again, watch the fading in effect on the Text Captions; Replay will not result in resetting the Radiobuttons widget, it is the widget coming with Captivate that doesn't have this functionality (as available in Jim Leichliter's extended version)
  3. slide Objects1 where the playhead will jump immediately to the chosen object, and stop; you can release the playhead by the Continue button or go to the Next slide; again I provided the Replay button, which will jump to the first frame of the slide and you'll be able to see all the objects 
  4. slide Objects2 where the playhead will jump immediately to the chosen object, and playhead will continue on the timeline
  5. slide End with an Exit effect that has again a Replay button

Frames and variables

Captivate's output is a movie, and like all movies it has a frame rate: during each second 30 frames are running before your eyes, and due to that speed it results in a continuous movement. You can change that framerate of 30fps but I'll keep with it in this post. This means that:
  • a slide with a default duration of 3secs has 3x30 = 90 frames
  • if you insert a default button or Text Entry Box, with its default duration of 3secs (90 frames), it will by default pause at 1,5secs which means after 45 frames
  • if you insert a default click box on that slide for the duration of that slide, it seems to pause at the end of the slide, but really pauses at frame 87 of that slide
  • if you have a long project, check the total number of frames in the Project Info panel (Captivate 5.5 only)
If you need information about frames during runtime, you have access to these system variables (belonging to my favourites):
rdinfoCurrentFrame: offers you the number of the frame where the playhead is at that moment; if you watched the sample movie carefully, you will have seen that I'm showing the value of this variable continuously, inserted a text caption with that variable on the master slide

rdcmndGotoFrame: allows you to move the playhead to a frame with a certain number and nothing else, the playhead will not continue

rdcmndGotoFrameAndResume: same as the previous one but now the playhead will continue its journey on the timeline

 

Fine, but mostly I will add a user variable v_startframe. Why? Because of my laziness, I do not want to calculate the absolute number of a frame that sits 1.3secs from the start of slide 45 of a project. First thing when needing micro-navigation: create a user variable that will store the number of the first frame of each slide. It can be reused for each slide, which means that the small advanced action that you'll need to create to store that value can be reused without any change as well.

Replay = navigate to first frame of the slide

It is as simple as that:
  1. store the number of the first frame of the slide in the user variable v_startframe by executing this standard advanced action on entering the slide:
       Assign v_startframe with rdinfoCurrentFrame
       Continue
    the second statement is a good practice for standard actions to avoid that the playhead just stops
    this advanced action is used in the sample file for the slides 1 (Intro), 2 (Choice) and 5 (End); it is incorporated in an advanced conditional action for slides 3 and 4.
  2. create another standard advanced action to be triggered by the button Replay:
       Assign rdcmndGotoFrameAndResume with v_startframe
    not necessary to add Continue here, because of the system variable

Micro-navigation

This is illustrated on the slides Objects1 and Objects2. Have a look at the timeline of Objects1 in the Gallery (Objects2 is constructed identically); from bottom to top you'll see those objects:
  • Rectangle with a duration, a timeline of 3 seconds; translated in frames: from frame 1 up to 90
  • Circle starting at sec. 3 and equally with a duration of 3 seconds: from fram 91 to 180
  • Triangle start at sec 6 with a duration of 3 secs as well: from frame 181 to 270
  • Polygon start at sec 9 with a duration of 3 secs: from frame 271 to 360
  • 3 buttons: Continue, Next and Replay for the duration of the slide, but pausing at sec11 (anywhere after the start of the Polygon was OK)
To navigate to the proper object, based on the Choice made by the user in the second slide, a conditional advanced action is needed to be triggered on entering the slide Objects1 (and Objects2). Because I also want to store the first frame number in the user variable v_startframe, this conditional action will have 5 decisions 1-3 have an image in the Gallery:
  1. a mimicked standard action StartFrame, to store the frame number 
  2. decision Rectangle that sets the playhead to the first frame of the slide, because Continue is lacking here, contrary to the Replay action, the playhead will not move on
  3. decision Circle uses an Expression to navigate to second 3 (because of the speed I used 89 instead of 90, watch the frame numbers on the slides)
  4. decision Triangle is similar to Circle, but with replacing 89 by 179
  5. decision Polygon is similar to Circle, replace 89 by 269
For the next slide Objects2, I used a similar advanced action with one big difference: the system variable rdcmndGotoFrame is replaced by rdcmndGotoFrameAndResume. That is the reason the playhead will continue, contrary to the slide Objects1.

Conclusion

Hope this has explained my view on micro-navigation? 

 

Auto-hide Playbar!

Intro

Today I worked out a solution for a user question on the forum:

 'Is there a way to auto-hide the playbar in the published files? I would like the playbar to appear only when the mouse is over the area where the playbar should be, something similar to 'auto-hide the taskbar' on the desktop"

Nice challenge, perhaps you'll find this also worthwhile? No complicated advanced actions here.

Example

Play this movie, it only has 2 slides, the playbar is at the bottom, when you hover your mouse over that region the playbar will show up and you can click the next button... Playbar hides when you move the mouse away from the bottom.

Work flow

Glad that I can refer once more to a Captivate friend, Chris Dorna (Dutch-speaking like me but we do not live in the same country). Grab a copy of Chris Dorna's widget to hide the close button on the slidelet, it is free, here is the link:

HideSlideletClosebox

 

Ready? Here are the steps:
  • Configure the playbar in overlay mode (will show on the slide, to make the rollover effect realistic) using the Skin editor.
  • Turn off the borders in the same skin editor, by default there is a bottom border for the playbar when not in overlay mode.
  • On the first slide, on Enter Slide replace the default action  (Continue) by  Assign cpCmndShowPlaybar with 0 to hide the playbar at the start
  • Configure one of the Rollover Slidelet styles using the Object Style Manager so that no border, nor runtime borders are shown (see image in the Gallery)
  • For each slide you'll need to
    • insert two rollover slidelets with the style you just edited
    • resize the first rollover slidelet (not the slidelet itself) to approximate the size of the playbar (see image in the Gallery); as action On Rollover attach  Assign cpCmndShowPlaybar with 1; when the user hovers over the playbar will become visible
    • move the second rollover slidelet as action On Rollover attach  Assign cpCmndShowPlaybar with 0; when the user moves away from the playbar he rolls over this second slidelet and the playbar will be hidden
    • insert Chris' widget and configure it to hide the close button for both slidelets - instructions are in the widget itself.

You have to repeat the last actions for all the slides,  use copy/paste but do not forget to edit the HideSlideletClosebox Widget properties to adapt to the new ID of the slidelets. In the last image of the Gallery you see those properties for the second slide, where I kept the default labels for the Slidelets: Slidelet_3 and Slidelet_4.

 

Report Custom Questions - part 1

Intro

If you are a 'fan' of my blog, you'll know that I blogged several times about creating custom Question slides, to have more control such as partial scoring, customized feedback, customized Retake features etc. And this was achieved using standard objects and/or widgets in combination with advanced actions. More than once I got the comment: 'is it also possible to report from those question slides, to have the score transferred to a LMS (or parallel solution)?' This is indeed possible, but not for everything and I promised to have some blog posts explaining the possibilities and the limitations. In this first part I'll try to explain the basic principles, the content of the 3 planned posts and some examples of the first type of custom questions. Of course - those are the easy ones. Part 2 and certainly part 3 (prepare your maths skills) will be more complicated, but...that is the challenge!
 

Basics 

From my observations and testing, I learned that:
  • Quizzing system variables are read only, you cannot change them
  • Scores can only be acquired using question slides and interactive objects/widgets - those are the scoreable objects
  • Only integers can be used as a score
  •  You cannot add a negative score
  •  All scores available in the project (Advanced Interaction - F9) can be added to the Total Score (cpQuizInfoPointsscored) in the Reporting accordion of the Properties panel

Based on this knowledge this are the possibilities for reporting, and will be subjects for the three blog articles:
  1. If you use interactive objects or widgets, the scoreable objects you can attach a score directly to them (part 1 - see below); 
    a question widget behaves like a default question slide, so will not talk about them in this article
  2. If you use static widgets, you'll need interactive objects to add a score for the question (will be treated in part 2)
  3. if you are using partial scoring or decrementing score in some situations as a guess correction, the situation is more complicated than if you have only a Pass/Fail possibility for a question (similar to the Default Question slides coming with Captivate) (possibilities and limitations - see part 3)
Those three situations will be treated in 3 articles, here you'll find the first one about using interactive objects and/or widgets for question slides 
 

Question slides with scoreable objects

Example

Play this movie, it has 5 custom question slides and a score slide. And in the image of the Advanced Interaction panel, you'll see which objects are scored and added to the total score. This total score will be reflected in the quizzing system variables cpQuizInfoPointsscored and cpInfoPercentage that can be reported to a LMS or by a parallel solution.

Description of the Question slides

No extra features were added to the question slides, they were created as simple as possible (no Review, no Retake, no resetting possibilities) since the purpose of this blog post is to illustrate only the reporting possibilities. There is only one advanced action on entering the score slide that will show the appropriate Text Caption for Pass/fail.
On the question slides you'll see the status of the system variable cpQuizInfoPointsscored inserted in a Text Caption placed on the master slide. This will only be functional for version 5.5, because in previous versions this system variable was not immediately updated with scores attached to scoreable objects. This is one of my favourite new features as I described in a previous blog post: What I (dis)like in Captivate 5.5.
  
Slide 2: MCQ
Each sentence is covered by a click box. The click boxes over a correct answer have a score of 5 points, to be included in the Quiz and added to the total score. The click boxes over incorrect answers have no score at all. Because the user has to be able to stay on the slide, the action on Success for the click boxes was changed to 'No action' instead of 'Continue'. Since each Click Box is reported individually, partial scoring is here functional contrary to the default MCQ-slides.
 
Slide 3: True/False
Here I used two customized Image buttons. The button with the correct answer has again a score of 5 points, is included in the Quiz and added to the total score, the button with the incorrect answer is not reported.
 
Slide 4: FIB
Text Entry Boxes with a default setting were used (Submit button for each of them), and they are validated. Each TEB has a score of 5 points, included in Quiz and in the total score. No action is used again to avoid that the playhead continues after submitting an answer. Again, because of the individual reporting of each TEB we have the possibility of partial scoring for this question.
 
Slide 5: Hotspot
A click box with a score of 5 points and included in Quiz and score, is used as hotspot area. More than one hotspot is also possible.
 
Slide 6: Drag and Drop
The DragAndDrop Interactive widget (InfoSemantics) was used here once and it has a score of 15 points to be included in the Quiz and total score. Here no partial scoring because I used the widget only once, and all answers have to be correct to get the score. It would have been perfectly possible to use this widget multiple times on the slide to have real partial scoring as well (see previous blog post: Playtime with Audio and Widgets)
 
Slide 7: Score
You do not get the score slide automatically, because I do not have any default question slide. You can get the score slide by activating 'Show Score' in the Quiz settings, but here I preferred to create a custom results slide, using Quizzing System variables. And a conditional action on entering this score slide shows the appropriate Text caption. The PassPercent is set at 80%.