This blog post is due to a forum question. For a custom Play/Pause button the developer tried the workflow from this post. However there was a second request: the learner was expected to click an interactive object to proceed to the next slide. The original conditional action for the Play/Pause button results in a conflict: if the learner clicks that button multiple times, the Play action can override the pausing point of the interactive object meant to pause the slide indefinitely until the learner clicks it to proceed to the next slide. If you want to learn more details, please check out this thread.
My promise: a workflow, taking into account that it should be possible to use it on multiple slides. You can test it out in the Example project. Maybe some of you could be in the same situation, hence this blog post. It is based on deep understanding of Captivate's Timeline, micro-navigation, power of shared actions and objects timed for the rest of the project.
If you are wondering: this workflow is impossible in the new version 12 for multiple reasons.
Please test this project, either by watching it using this link for a scalable version, or the static resolution version embedded below. After the introductury slides you'll find two slides with the Play/Pause button. Test them by clicking that button multiple times and watch what happens when you reach the end of the slide: the button will change its state but the play head will remain paused until you click the
Next button. I used some design elements/slides from the non-
responsive Quick Start Project 'League'.
The basic conditional action for the custom Play/Pause button, which is timed for the rest of the project to start with is:
I used the simple commands Pause and Continue, which have exactly the same result as assigning values to cpCmndPause/cpCmndResume. Toggling those variables alhough they are Booleans, is not possible (sorry). I preferred the 'Go to Next State' for the PlayPause button. This is the object state panel of the button, this command is toggling between the two states.
Due to the timing of the button for the rest of the project, it has always the same ID and the advanced conditional action has nothing which changes when being on another slide. Problem is that when the button is clicked to the Play state on the pausing point of the Next button, the Continue command will override the pausing by this button. To solve this we need to know 'where' that pausing point is, and add a new decision to the conditional action, where Pause occurs in that situation even when the learner clicks to play again.
If you have an instance of the Next button on each slide, to time it near the end of the slide, its pausing point will be at a different frame on each slide. In the example project, to simplify, I timed the Next button for the rest of the project and took out its Pausing behavior. But I added a click box on each slide, pausing at the end of the slide. The click box is invisible (no feedback messages) to the learner.
I need to define on which frame the slide has to pause indefinitely. In order to keep the Play/Pause button action independently from that frame, I have to store it in a user variable. The value of that user variable will be defined using the On Enter slide event.
The used system variables are:
Two user variables will be used but since they both appear in a Shared action, they'll be defined when you send this shared action to a new project:
The 'All New Captivate', version 12 has been released just over a month ago.
It lives along Captivate Classic because it has not all the features which are expected in a full-blown authoring tool. Main limitation is that you can only create responsive projects. As a long-time user of Captivate I know that this implicates a lot of prohibited workflows which are possible in a non-responsive project.
To test the differences in workflow and possible bugs/lacking features I want to recreate a responsive project in the new version. The project which you'll be able to see here, was created with Fluid Boxes and based on a Quick Start Project 'Rhapsody' for the design aspect.
Play with the project on any device, using this link. You can also view the embedded one below, but on mobile devices you better use the link.
The topic is simple, and suited for playing on small mobile devices. There are some references to previous blog posts, but they used a non-responsive project. I focused on multistate objects because I know already that they are easier to use in the new Captivate release than in Classic Captivate.
I plan to document each of the steps of the test process in another blog with limited access. Although my primary focus will be on recreation of the interactivities in the project, I will also spend time on the design features. Here is a non-restrictive first list of steps:
Steps in Bold are for me the primary goal.
After the process I will post a link to the result in this blog.
As mentioned the new blog will not be public. If you are interested in following my test steps and conclusions, you'll need to contact me either:
You may get an invitation. It will be a limited group and I expect some engagement/reactions on the private blog.
At this moment two versions of Captivate are functional with the same license: Captivate Classic (version 11.8) and Captivate (version 12, also named Charm). The workflows described in this post are only functional in Captivate Classic. In version 12 they are not (yet) possible for multiple reasons which I will summarize at the end.
Captivate has a playbar which includes Next and Back buttons, and a progress bar allowing to scrub to any location.
However in many projects these default buttons are not wanted, some examples:
In those cases you don't want to have the default buttons which will be available all the time and always cause the action 'Go to Next Slide' or 'Go to Previous Slide'. In all those cases a scrub bar is also a bad idea, but this article has its focus on custom Next and Back buttons. I have seen so many cases where the developer just puts an instance of the custom buttons on each slide - each with their individual action - but I will propose altnernatives.
Purpose of both workflows is the same: avoiding to have an instance of the buttons on each slide:
Since the buttons in both workflows will not always be used with 'Go to Next Slide' or 'Go to Previous Slide', you'll need a 'dynamic' action to make them flexible.
I prefer Shared actions because it is easier to transfer them to any project, using my Shared actions Library. That is a Captivate project where I store much used Shared actions. I open the library in any new project using File, Import, External Library.
The simple action ‘Go to Next Slide’ can also be achieved by this action:
Assign cpCmndGotoSlide with cpInfoCurrentSlide
This may seem weird, but the reason is the different start number of the index: for cpCmndGotoSlide it is 0, for cpInfoCurrentSlide it is 1. Example: if you are on slide 3, Next button should go to slide 4, but for cpCmndGotoSlide slide 4 is identified by number 3.
Howeveer you cannot use this action to the Next button, whether it is on the first slide (timed Rest of Project) or on the master slide(s). It is static, you cannot edit it to go to another slide than the Next one. To solve this issue I replaced the system variable by a user variable, which I label v_Next.
Assign cpCmndGotoSlide with v_Next
Another event and action is needed on each slide to define the value of v_Next. The used event is the Slide On Enter, and it is better to use an Advanced action, because it can be applied to all On Enter events of the slides in one workflow. For its default action it will be:
Assign v_Next with cpInfoCurrentSlide
For slides where the Next button needs to jump to a different slide, you’ll need to edit this action, replace ‘cpInfoCurrentSlide’ by the slide number you want to navigate to..
The simple action 'Go to Previous Slide' can be replaced by this Expression:
Expression cpCmndGotoSlide = cpInfoCurrentSlide - 2
Why 2? For the same reason as explained for the Next button, due to the difference in index for both system variables. To make this action dynamic, we'll need another user variable which I'll label v_Back. Similar to the workflow for the Next button, the value of this variable will be set with an action On Enter for each slide. For a normal Back button this would be:
Expression v_Back = cpInfoCurrentSlide - 1
The action for the dynamic Back button will be:
Expression cpCmndGotoSlide = v_Back - 1
On the slides where you want to navigate to a slide which is not the previous slide, edit the On Enter action, replacing cpInfoCurrentSlide by the wanted slide to navigate to.
I prefer also shared actions for both the Back button action and the On Enter action.
In my Shared actions Library I have three Shared actions for the Next/Back buttons:
NextAct Assign cpCmndGotoSlide with v_Next
BackAct Expression cpCmndGotoSlide = v_Back - 1
EnterAct Assign v_Next with cpInfoCurrentSlide
Expression v_Back = cpInfoCurrentSlide - 1
This workflow is impossible due to lack of:
In that version you need to keep the workflow to insert or copy/paste a button on each slide and add the appropriate action using the Interaction tool.
Captivate has always been famous for its interactive software simulations. Originally when it was released under the name ‘RoboDemo’ it was its primary goal. Although – in recent versions – not much has been changed for this feature, it could be worthwhile to explain some tips I acquired while recording interactive tutorials for many applications (in several languages). In Flanders we often quote ‘Goed begonnen is half gewonnen’, freely translated ‘a good preparation will spare you lot of work later on’. This blog is about this preparation phase. some recommendations are also valid for Video Demo. I plan another blog will focus on the capturing workflow, and a third one on editing/polishing the sims into engaging eLearning course(s).
Preferences can be edited before opening a project, while you are in the Welcome screen, the so-called Global Preferences. You do not have to start the Software simulation type of project to do so. Preferences are too be found under the Edit menu (Win users like me) or under the Captivate menu (Mac users). Those global Preferences have less options because project-specific ones are missing, but the Recording category is complete.These options need to be checked, and eventually changed:
Check the language! If you need to use another language, this is the place to be before starting the simulation. The feedback messages during capture (both shapes and captions) can be found in a file with extension rdl, like you can see in this screenshot. You can edit the messages in an editor like Notepad (don’t use Word).
I tend to keep the other settings at their default value. Lot of them can be set up later on for the project (narration, system audio..). The Camera sound and the Keystrokes audio are useful during recording, will not be included when published. The Smoothening is meant for the movie slides which have to be created for drag and other mouse actions. Later on you’ll get tips in the second part which will treat the capture itself.
To have a better quality for the movie slides (setting is also used for the simulation movie slides, also indicated as Full Motion Recording slides), change to 32-bit instead of 16-bit. For Video demo the temporary files are in a dedicated folder, you may want to switch to another folder on another drive if your startup drive (C) is too small. That tip is only for Video Demo, which can become rather big in file size.
Some of those shortcut keys are only for software simulations, not for Video Demo. That is the case for the Pause button, you cannot pause a Video Demo (answered that question multiple times in social media). You have to end the recording and eventually record another video at the end of the previous one..
Allows to check the setup for the three default modes (Demonstration, Training, Assessment) and eventually set up a Custom mode. Beware: you cannot choose a ‘default’ mode for future recording, which is what some users seem to believe. Choosing the mode(s) always happens at the start of a new recording. Personally I will edit some settings in this category. The feedback messages in a software sim, contrary to all other feedback messages (shapes) are by default set to be Text Captions. I prefer to switch to shapes and you can have a choice for the shape; it is easier to control the style of shapes in Captivate (see Step 2: Themes). You need to make the choice for the Demonstration mode, but it will be taken over for the Hint messages in Training/Assessment:
Take note of the objects to be added during recording: besides the Success/Failure/Hint messages, highlight boxes, click boxes, Text Entry Boxes and eventually Rollover Captions (for Tooltips).
This category is meant to edit the styles to be used. It is bit weird that this is included in the Preferences. Do not worry, Recording defaults will be added to the used Theme as well.
Beware: that will be the Theme set as Default theme. Of course if you opted for shapes instead of captions under 4., you only have to check the styles for shapes, not for captions. It is a bit confusing, because some captions have no counterpart as shapes: Capture Caption, Rollover caption. The styles for Smart Shape (used for both) is by default empty, but you can choose a styles there as well.
I will always create a different style for the Highlight box, instead of the thin lined Blue one which is the default. For the TEB, which often doesn’t have the wanted style that is a lot more difficult, because the wanted font and font size depends a lot on the application you’ll want to capture.
All software simulations (and the Video Demo) use the Blank master slide. It is important to keep that master slide blank. A background color or background image is not a problem. But you shouldn’t add other objects.
The Theme of your choice will need the wanted theme colors palette, theme fonts and object styles (maybe set in the Preferences, Defaults), Content and Quiz master slides are important if you want to add them later on to the course. Once the wanted theme has been double-checked mark it as the Default theme. Especially if you do create many software simulations it is recommended to keep a Theme dedicated to them.
You have to know precisely what you want to capture. For long workflows, do not hesitate to split them up in small logical parts. It is a lot easier to record a limited number of slides, certainly if you want to do narration at the same time (which I do not recommend). For a software simulation you don’t have to worry that much about the synchronization with audio, since that can easily be done while editing (phase 3). While preparing, keep in mind to limit Full Motion Recording slides when possible. In many case drag and other mouse actions can be replaced by alternatives. Example: instead of dragging in scrollbars click somewhere on those bars. There are a couple of reasons. Several users have reported issues with the FMR (Full Motion Recording) slides when publishing to HTML5 in some browsers. Originally those slides are SWF-based, they are converted to MP4 when publishing but apparently the result is not always optimal. A better solution is to replace FMR by Video Demo slides, but that slows down the recording workflow (see second post).
Review the output tutorial published in this post. The two first use cases were about a knowledge check question where the learner needs to create physics formulas, by clicking the terms in the formula. Those terms are multistate objects, used as buttons. In a previous post we created one shared action to get the 'State number' which is stored in an associated variable for each multistate object. That same post also explained how to choose the sequence of the states.
The first use case has 3 terms in the formula, the second one has 4 terms. The terms are identical multistate objects, at the start of the exercise they show the same Normal state.
In this article youi'll see how to create the action for the Submit button, and the On Enter action which is needed to reset the slide and thus allow multiple visits to the slides.
Those are advanced action triggered by the Success event of the Submit buttons.
To the left of the equal sign the term should be 'Force', which is state 3 in the multistate object.
To the right of the equal sign we need 'Pressure' and 'Area', sequence is not important. Those are states 1 and 2. The easiest way is to calculate the sum of the two state numbers, which should be 3. To avoid confusion, create another user variable v_right to calculate the sum. The condition will be very simple: v_1 (state number to the left of the equal sign) needs to be equal to v_right. To show the result, another multistate object SS_Feedback was created with these three states:
This feedback shape is on the slide (not hidden) but the Normal state is invisible to the learner. I used the same feedback for the next slide (4 term formula) by timing it for the rest of the project. It will be hidden after the two formula slides.
The Submit action doesn't need much explanation; I used the Delay command to mimick the default time a feedback is shown, allowing a new attempt:
Due to the sequence of the states, a correct formula will also have the same sum to the left and to the right of the equal sign. Of course we need another user variable v_left to store the sum to the left. However, checking the sums will not be sufficient in this case. If the learner chooses exactly the same states on both sides, the sums will also be the same. Example: if only the states for the 'oval 'are chose on both sides. To exclude that situation, I use another expression with a multiplication of the state numbers. For the result of the multiplication two extra user variables a; re defined: v_leftM and v_rightM
Example: if only 'oval' states are used sum will be: 5 = 2 + 3. However the multiplication will result in 6 = 2 * 3. Whereas for the drum the sum is 5 = 1 + 4 but the multiplcation will result in 4 = 1 * 4. Look at the Submit action in this case:
Those are advanced actions triggered by the On Enter event of the slides, to reset the situation.
The 3 variables storing the state numbers need to be reset to their default value (1: corresponding with the Normal state). That is not necessary for the v_right, because it is always calculated. The option 'Retain state on revisit slide' is not activated, which means that on revisiting the slide the Normal state is reset automatically. The variable v_states needs to be redefined.
Since the multistate object SS_Feedback is timed for more than one slide, and can be hidden by actions on later slides, it is important to show this object and put it back in the Normal state. The automatic reset to the Normal state is not happening due to the timing. The Next button needs to be hidden.
The 4 variables storing the state numbers need to be reset to their default value (1: corresponding with the Normal state). That is not necessary for v_right, v_left, v_leftM and v_rightM because they will be calculated. The option 'Retain state on revisit slide' is not activated, which means that on revisiting the slide the Normal state is reset automatically. The variable v_states needs to be redefined.
The resetting for the feedback object is for the same reason as in the other Formula slide.
I used a similar workflow in this small project, which is meant as exercise for the math's class about Multiplication tables.
It is a responsie project, uses the same shared action I have used in the use case I described here. The Submit actions are a little bit more complicated. Your challenge: try to replicate this project. This is the link:
In this post you can find a Captivate tutorial, illustrating 4 use cases where the state number was tracked and used to find a solution.
This post will explain the setup of one Shared action to track the state number, when a multistate object is clicked to advance to the next state. To explain I will use the first two (physics) use cases. The first one has 3 identical multistate objects, with 3 states, and two possible correct answers:
The second one has 4 identical multistate objects with 4 states, multiple correct answers are possible:
You can find one of the correct answers in those screenshots. The workflow will be described step-by-step.
Both use cases have:
Each multistate object needs an associated variable to store the tracking number. Since that number will be used only on the same slide, the variables can be reused. They will be reset with the On Enter actions. The four variables are labeled v_1, v_2, v_3 and v_4 (only needed for the second use case). If you are a fan of my blog, you may remember that I have those variables in a shared action in my general library to be used as external library. See Creation of Variables.
For the shared action StateNumber Act an extra variable v_states is used to store the number of states in the multistate object. The value of this variable will be defined by the On Enter action of the slide.
This action will be triggered by the Success event of each multistate object used as button:
It is a two-decision action. The value of the tracking variable (used as parameter 2) is defined by incrementing, while the command 'Go to Next State' is done on the multistate object. The second conditional decision checks if the maximum number of states is reached (stored in v_states) and resets the tracking variable to 1 in that case. The first parameter is the multistate object used as button, which is a compulsory parameter contrary to the variable which is a candidate parameter, needs to be indicated to be a parameter.
The state numbers will be used to check for a correct answer in combination with mathematical operators. For that reason there is no arbitrary choice:
It has two correct answers, left side of the equation sign needs always to be 'Force'. I choose this to be state 3.
To the right side of the equation sign it can be 'Area x Pressure' or 'Pressure x Area'. Those are in state 1 and 2, sequence less important. Reason: check for correctness will calculate the sum of the tracking variables to the right of the equation sign, which needs to be 3. That lead to a very simple condition. Try to figure it out, or wait for the next blog post.
This is bit more complicated. Similar to the 3 state case, we can calculate the sum of the state numbers to the left and the right. This leads to a sequence of state numbers as shown in the screenshot at the start. In all cases that sum will result in '5', because it will be either '2+3' or '1+4', in all correct answers symbolized in this list:
However there is a 'booby trap' here! Because the condition based on the sum will also result in correct when the states on the left and the right side are identical. Example: 2+3 = 2+3 which is not a correct answer. More is needed than the simple sum condition. Any idea? Find the solution in the next blog post.
Multistate objects did change my workflows in Captivate a lot when they were introduced. Use the tag 'multistate object' or 'states' in my blog to see this proved. However I often miss the possibility to follow up states. There is no system variable for that purpose. Partially due to some questions on the forums, I set up some use cases to see the usefulness of state tracking. In this introduction you'll find a Captivate published output of 4 use cases and a short summary of the basic setup I used.
Check the tutorial below. These are the four use cases:
You can reach the rescalable version of this example using this link, or watch the embedded one below.
For the design I used some slides from the Quick Start Project 'Diverse'.
For each multistate object a user variable is defined. It will store the tracking number. I choose to have numbers identifying the state, with Normal being state 1, or in programming language: index starts with 1. None of the multistate objects in the example project has an 'empty' Normal state. If that were the case, the index could have been 0 which is the common approach for most system variables. However the system variable cpInfoCurrentSlide also has an index starting with 1.
For the use cases the state commands 'Go to Next State' and/or 'Go to Previous State' are used. So, it is necessary to reset the variable when either the last state or the first state is reached, to get a correct value in all situations.
Example for the first formula: once the third state is reached, the variable needs to be rest to 1 for the next click.
This is more of a general tip when using advanced/shared actions. It is easier to set up a workflow if you can spread the actions over multiple events.
For the first two use cases (formula): the multistate objects are interactive which leads to the use of a shared action because the check of the answer is done by clicking a button. This is also more user friendly: control over submitting the answer is given to the learner.
For the Carousel the multistate object is not interactive. Only the success events of the Forward and Back button are used. You'll see in the videos that this makes the action more complicated because all situations need to be cared for.
The slot machine is using JS for a random number and a While command, and can be triggered by the multistate object which is interactive. I added a Check button, to avoid a very complicated action. It is also the only example where I provided a Reset button (see previous blog).
On Enter event is used to reset variables and the situation on a slide. This is necessary when you allow to revisit the slides, but also because I tend to reuse variables.
In the specific use cases of the formulas, the state tracking variable is used with mathematical operators to check for the correct answer. In that case it is important to choose a correct sequence for the states.
Example for the first use case: 'Force' is in the third state, because the used check function is to create the sum of the tracking variables for the first and the second state (1+2) which needs to be equal to 3 (third state).
I will post workflows for the use cases, including (interactive) video in future posts.
This is a short blog post, answering a software simulation (assessment mode) question on the forum. If you are interested, here is the link.
You probably know that in such an assessment scores are attached to one interactive object on each slide: either a click box or a Text Entry Box.It offten happens that the same action can be done by clicking more than one 'target' on the slide, which will need customizing that slide to add at least one extra click box, which will also be scored. However that will lead to a results slide where the acquired percentage is not correct. Reason is that all scored objects are included in the total score. You can verify that easily in the Advanced Interaction panel, to be opened from the Project menu or with the shortcut key F9. Here is an example. Slide 59 has two target click boxes, both are scored.
The OP wants to show the correct percentage to the learner in the project, but for the reporting to the LMS Pass/Fail reporting is sufficient which can be done by basing it on the required pass points.
cpQuizInfoTotalQuizPoints: will have the value you see at the top of the Advanced Interaction panel, and is not correct in this case because it includes the scores of the extra target click boxes.
cpQuizInfoPointsscored: will be correct because on each quiz slide only one of the targets can be clicked.
cpInfoPercentage: is calculated from both previous variables and will be lower than expected for the learner.
cpQuizInfoPointsPerQuestionSlide: this system variable is not behaving as expected for slides with multiple scored objects. It will NOT show the total score of the slide, but the score of ONE scored object. I will presume that in case of a slide with two target click boxes, both of them will have the same score. This is also valid if you prefer shape buttons instead of click boxes.
Since there is no need to transfer the percentage to the LMS, it is possible to use user variables. Create these variables:
v_TotalScore: will replace the system variable cpQuizInfoTotalQuizPoints
v_TooMuch: will store the total score of the extra click boxes. I assume that click boxes on the same slide have the same score.
v_Percentage: will store the result of the calculation from v_TotalScore and cpQuizInfoPointsscored
The easiest way would be to count the number of extra targets. If all the click boxes have the same score of 1 point you could calculate the correct percentage with this advanced action:
You can trigger this advanced action with the On Enter event of the custom Score slide. It will allow you to display the correct Percentage.
Situation becomes bit more complicated if not dual targets (click box/shape button) have the same score (of 1 point). In that case you can take advantage of the weird behavior of the quizzing system variable cpQuizInfoPointsPerQuestionSlide (see above). I used this shared action, triggered by the Success action of the targets, and the 'Last Attempt' action which is used here (Success action on a background Shape covering the complete slide). I assumed that the Last Attempt action of the targets is set to No Action. That typical workflow was used by the OP, and explained in this blog post.
You see that this shared action has no parameters, you could also create an identical advanced action, if you still fear shared actions. My main reasons for this choice:
There is a small change to the action to be triggered On Enter for the Results slide:
On the Results slide you can insert most of the default fields, an overview:
Coincidence because this blog, answer to another forum question, is an alternative workflow to my most recent blog post about Software Simulation Assessments.
Summary of the request:
Contrary to the previous article, the slide is created manually (no click boxes are added automatically as in a simulation). For that reason I preferred shape buttons over click boxes. A shape button can be made invisible by setting Opacity and Stroke to zero.
The same idea is at the origin of the workflow: at the bottom of the Timeline, a shape button (invisible to the learner) covering the full slide is added. Have a look at this screenshot of the Timeline of the first slide (Flags):
The Success event of this big shape button will trigger the FailureAct action to show the Failure messages.
Watch a scalable version using this link. The fixed resolution version is below:
The Timeline screenshot of the first slide (Flags) shows the objects on this slide, from bottom to top:
Two user variables are needed:
This action is triggered by the Success event of the shape button SB_Back. The OP preferred to avoid Shared actions. You can assign this action to that shape button on the first slide, but you'll need a duplicate advanced action for each slide, because the color marked items need to be changed:
For the Success situation I just kept the default Success message. This is the Actions tab for the shape button SB_Flags and similar:
Two messages are allowed, Success 'caption' (is a shape) is activated, and the Last Attempt action is set to 'No action'.
The Advanced Interaction panel shows which actions are attached to which events:
Thanks to a question on the Adobe forum: ‘How to have two different Failure messages for click boxes in a software simulation, assessment mode?’, I created a sample project showing the solution, and will explain the workflow step-by-step. It has become a pretty long article, be prepared.
At this moment multiple Failure messages (up to 3) depending on the number of the attempt, are only possible for question slides. A click box nor a button have that functionality. Moreover interactive objects, question slides, Drag&Drop slides have only two events to trigger an action: Success and Last Attempt. This means that you cannot use the first attempt to change a situation at all. Of course you could add events using JavaScript or InfoSemantics CpExtra widget. I accepted the challenge to try to figure this out only with Captivate’s features.
Watch this project either with the embedded fixed resolution version below, or by clicking this link for a rescalable one (recommended).
Have a look at the Timeline of the first slide with a scored click box:
From bottom to top you have
It is impossible to have states for the default feedback messages of interactive objects. You can see in the Timeline that this multistate shape is labeled SS_Failure and that it is displayed for the rest of the project, always on top. Its visibility is triggered by state changes.
This action is triggered by the Last Attempt event of the Click box.
The Failure shape is shown, and will have the Second state in place (see below in the shared action ‘BackAct’. Since it is not a default feedback message, it will not appear automatically nor leave the slide paused for 3 seconds as will be the case for the Success message. That is the reason for the Delay command, followed by navigation to the next slide.
You see that this advanced action will be the same for all the click boxes, because of the Timing of the SS_Failure message for the rest of the project.
This action is triggered by the Success event of the shape button SB_Back2.
Because there are so many instances of that shape button, I largely prefer using a shared action over duplicated edited advanced actions. In the next part (other slides) you’ll see how to avoid having to enter the parameters on each slide. Here is the screenshot of that action, with the indication of its parameters:
The state of the Failure message will be changed to show the ‘second’ message when the click box is not correctly clicked. To allow such a failure you need to hide the back shape button so that a click outside of the click box is possible. But since you don’t want the Failure message to appear right away, you need to hide it. As you could see it will be made visible with the Last Attempt advanced action. Sequence of the actions is very important here: you need to change the state before hiding.
This action will be triggered On Enter for each slide with a scored click box. Since the OP provided multiple attempts on quiz level, I needed also to take into account that the slide will be revisited and custom objects have to be reset in their original status. Custom objects are the shape Back button (SB_Backx) and the multistate shape used for the second Failure message (SS_Failure). That explains why I preferred a shared action with these three parameters:
This is the screenshot of the action with parameters filled in for the first slide:
The two failure messages were only needed for the click boxes. You’ll need a simple On Enter action to make sure that the Failure shape has been hidden. With static slides I mean the very short slides which sometimes appear during capture and eventually intermediate explanation slides. You can use the Advanced Interaction panel to help with this setup. Here is an example of this panel for some slides:
Watch the labeling of the Shape back buttons on slides with Click boxes, and the applied actions to the Back button, the Click box and On Enter.
Slide 7 has a Text Entry box and shows the simple State action to hide the Failure message.
This project had 26 interactive objects, Click boxes and Text Entry Boxes. Each of them has a score of 1pt, which leads to the total score showing at the top. It is that score which is stored in the quizzing system variable cpQuizInfoTotalProjectPoints/cpQuizInfoTotalQuizPoints and is used for calculating the displayed fields on the Results slide.
My apologies for this rather long blog post, where I tried to explain the full workflow in detail. A simple question, however with not a real simple answer, agreed? Questions are always welcome. Post them in the comment.
Another post meant as answer to a more complicated question in the Adobe forums. You can find the (long) thread under this link. Title 'Play different audio on slide revisit' is not covering the final required situations. I will explain the end situation in short terms.
The solution is less easy than I thought, hence this blog post.
I created a barebone project for testing, using some slides from the Quick Start Project Safety. Have a look, to understand better what I explained about the request.
The course has 7 slides:
The menu slide should appear in 3 possible states:
Have a look at the Timeline of the menu slide in the Example project:
You see the staggered objects including an entrance effect. Those are the white numbered shape buttons. The meaning of the top most button (SB_Done) will be explained below but you see that it has audio attached (object audio).
Create the user variables shown in this screenshot. The tracking variables (one per chapter) v_1 - v_4 are Booleans, default value =0. The variable v_skip will be populated with the duration of the narration audio clip in seconds. The variable v_audio gets the duration of the final audio clip. As indicated in its description v_buttons is meant for the sum of the tracking variables, which will be calculated whenever the menu slide is revisited.
Since it proved to be impossible to use Play Audio for the final audio clip in the project, I opted to use Object Audio. That type of audio plays when the object appears, or is made visible. The shape button which I use is invisible because both Opacity (fill) and Stroke are set to 0. The eye button in its Properties is marked 'Invisible in Output'. The audio clip is added in the Options tab. The action nor the attempts matter, since the Jump to the last slide will not be done by clicking this invisible button. Have a look at the Style and Options tab in these screenshots:
This action is triggered by the success event of the Return buttons at the end of each chapter, it is pretty simple to understand from the Preview screenshot:
This action is triggered by the On Enter event of the menu slide, takes care of the three possible situations (see Analysis above). Both conditional decisions are mutually exclusive because they are based on the value of the sum variable v_Buttons.
I could have used JS to calculate the value of v_buttons to avoid the sequence of the 3 Expression commands.
If you want to reuse this action for other projects, I would recommend to convert it in a shared action. Be careful with the two literals (duration of both audio clips). They can be tricky, and it may be better to replace them by variables getting their value in the Variables dialog box.
This screenshot shows all events and actions in the example project.
This course offers a detailed (video) workflow how to create and use for Drag&Drop objects.
The video is also available as standalone on YouTube, can be skipped in the interactive Captivate tutorial. The tutorial has also a Table of Content in Overlay, to allow complete free navigation.
The mastered skills are used for two games, which also take advantage of the available InBuilt states for Drag&Drop objects. More detailed workflow for the games will appear as blog posts. I used Ready-to-go slides from the Quick Start Project 'Business', non-responsive version. Some licensed images from Adobe Stock were used as well.
You can watch the tutorial as scalable HTML output from this link (recommended- or watch the embedded fixed resolution output below:
This is the fifth blog post about default Quizzing slides. Five of the compulsory master slides in any theme are linked with Quizzing. For this article the type of project is important: non-responsive project, responsive project with Fluid Boxes, Responsive project with Breakpoints. Same master slides are used for Pretest and Knowledge Check slides.
With CP2019 Overlay Knowledge Check slides are available in an Interactive Video. Those slides also use the master slides in the chosen theme. The Quiz slides in a VR project however cannot be formatted using master slides at this moment. You have to accept the default styling. It is possible to edit the text containers (mostly shapes) but that has to be done on each slide individually. I sincerely hope that formatting functionality will be extended in next versions.
As for the object styles, for master slides editing depends on the type of project: non-responsive (can be published as scalable HTML output), responsive with Fluid boxes, responsive with Breakpoints. Between those types master slides are not interchangeable.
In the previous posts Terminology and Submit Process I explained the meaning of Embedded Objects on the quizzing master slides as being objects without an individual Timeline. You find them on the four master slides for Quizzes. They appear as placeholder on inserted Quiz slides. Each of them is using a dedicated Object style from the Quizzing Category (see Object Style Manager). As I wrote in Preferences it is a bit confusing that for the included Captivate themes, the default feedback messages use shapes as container, not captions which means you cannot change them directly for the Default Labels dialog box where only caption styles are available.
The background of the quizzing master slides can be set up like any other master slide. Since they have a lot of placeholder objects (mostly shapes) which can be styled individually you will mostly see either:
However feel free to use an image as background. Or you can override the background on individual quiz slides by inserting an image. Since the embedded objects are always on top of the stack, that image will automatically be below the quiz objects.
An in-depth exploration of the quizzing master slides in the Fluid Boxes themes is described in this article.
Every embedded object is in its (normal) fluid box, with the exception of the feedback messages sharing a static fluid box. That is necessary to save space, they are stacked which is not possible in a normal fluid box.
Some of the tips mentioned for non-responsive projects are also valid for this type of project:
I have to confess that the toughest part of this type of projects is getting the quiz slides behave properly on all mobile devices. Although in some cases I prefer this type of responsive project for content slides because of the real freedom of design allowing to reduce layouts for small screens to the bare minimum by replacing items, quiz slides are a real pain.
It is very important to set up the object styles properly, especially those where fonts are included. Full explanation is to be found in ‘Object styles for Responsive Projects’.
The problem has become bigger, because Captivate no longer has included themes for Breakpoints as was the case until CP9. I still continue to use those themes, especially for the Quizzing master slides. At least they provide a start for setting up the responsiveness. For the rest a lot of testing (trial and error) is needed.
Most of the tips mentioned for non-responsive projects are fully valid, taken into account that you need to use the Position Properties to make all items responsive. No limitations however as for Fluid boxes: stacking is allowed, grouping is allowed etc… You can drag the Review button under the Retake button.
This fifth post was supposed to be the last one in the sequence about default quiz slides. However I will add another one explaining partial scores and penalties, after seeing several questions in the social media. You should now have a pretty complete overview now. Next articles will be about tweaking the default design (submit process, use of feedback images, use of audio…) and special situations like Branch aware, Pretest setup, Remediation. custom quiz slides, …
I also strongly recommend to get acquainted with the category 'Quizzing' of the system variables.
]]>In previous articles I talked about these topics:
Differences between Knowledge Check slides and Quiz slides are fully explored in this article.
This part has its focus on the Quiz Preferences. some of them have to be set up preferably before inserting any quiz slide, or creating a question pool. The same is the case for editing the design of the quizzing master slides which will be the topic of the 5th post in the series. Up till now the described content was valid for non-responsive projects, responsive projects with Fluid Boxes and responsive projects with Breakpoints. That will also be the case for the Preferences. Sorry for this very lengthy article, sometimes bit boring but I didn't find an in-depth explanation anywhere else.
It is also important to set up the design of quiz slides in the master slides before inserting questions, but in case you want to edit later on, it is possible. However this part of the Preferences needs to be done imperatively before inserting quiz slides. It concerns the default messages to appear, the labels on buttons etc. Too bad, not everything can be found in the same location in Preferences. And the amount of items to be edited can be different depending on the type of ‘quiz’ slides. Will try to structure everything as completely as possible for each type.
This is the most intuitive location in Quiz Preferences. The number of fields showing up can be different. This is a screenshot of the dialog box for normal quiz slides:
The first part of the dialog box shows the text for all the messages. I changed the text for the Correct and Incorrect Message. That change will NOT show up in the Master slides! That is the reason I insist on making those changes before inserting quiz slides. Resetting the Master slide cannot be used on existing quiz slides to revert to the changed labels. Since I have to create courses i multiple languages, I have exported Preferences with those edited labels for each language.
Very confusing IMO is the indication of the Style used for the messages. Look at the Correct message, which tells that the ‘Default Success Caption Style would be used for that message. That is NOT true in the default setup of Captivate, the default style used will be the Default Success Shape Style. Look at the Properties panel, I had the Success message selected on this slide. Reason is that in Preferences, Defaults normally the option to use Captions instead of Shapes for SFH is unchecked. However, this also means that you cannot switch to another shape style in the dialog box shown above. You have to switch to the Object Style Manager if you don’t like the used style for this message. You can find more details about the OSM in previous blog posts.
Second part of the dialog box shows the labels on the buttons of the quiz slides. You may already know that only the old type of buttons can be used (Text, Image or Transparent), not Shape buttons. For those buttons the label has to be entered in the Properties panel, not on the stage by double-clicking the button as is the case for shape buttons. Change the labels here in the Defaults to avoid having to do it on each quizzing slide. Change will not be transferred to the quizzing master slide neither. Alternative could be to change labels on all the quizzing master slides. Contrary to the messages, you can use the dropdown lists for the button styles to change the style if wanted.
The progress indicator is also in the dialog box (was on my pleading for translation reasons). It is a weird object, neither caption nor shape, just text. You can edit the style in the Object Style manager however, under Quizzing Objects.
Under Quiz Preferences, Settings more default messages can be found. Let us start with the Quiz Result messages, which will appear in the so-called ‘Review Area’ on the score slide:
In that dialog box you can edit the Pass and Failure messages (which do not appear on the Results master slide!) and eventually indicate which fields you want to show (but that can be done later). The legacy indicator for an email button is not valid anymore since many versions.
Under settings you also find the button for the Quiz Review messages which only is activated when Review is allowed. Except for the Incomplete message, most of the messages will only be used for disabled learners. Since quite a lot of versions no text message appears for other learners, only checkmarks.
The Incomplete message will appear in the Review area (same name as on the score slide)? If you don’t need the Accessibility messages and do force the user to answer each question (see later), it is perfectly possible to make that review area placeholder much smaller on the quizzing master slides. However do not do that for the Review area on the results master slide, it is needed for the Pass/Fail messages mentioned before.
When you activate Submit All functionality, this button gets activated. The label on the Submit All button which replaces the normal Submit button, has been set already under Defaults in Quiz Preferences? But the popup dialog box that appears when that button is clicked has several defaults as well, which appear in this dialog box (I jsut corected Ok to OK).
You’ll see that contrary to the other Defaults, there is no way to set styles here at all . This default dialog popup box will take on the style of the theme. If you dont like that style, go into the Object Style Manager, and find the style ‘Runtime Dialog’. It is listed independently from Standard Objects and Quizzing objects, since it can occur for both normal slides and quizzing slides.
All dialog boxes shown in this part are valid for quiz slides, pool questions and KC slides. They are the same for responsive and non-responsive projects. Screenshots were taken in a responsive project with fluid boxes.
The other preferences can be set up whenever you want although I would personally prefer to activate the Submit All if you want that feature, since it has consequences for the default settings for that option. Similar for the Review functionality if you need the Incomplete message.
I will not go into details for all the settings here because it would be almost impossible since a lot has to be tested out with the LMS you are using in your courses. If that LMS accepts only packaging using Reporting (SCO’s) you need to activate Reporting. Only a few LMS’s have a dedicated setting in the LMS dropdown list. Choose the protocol to be used, in many cases that will be SCORM 1.2, AICC is really outdated, and not every LMS supports the more powerful SCORM 2004.
Just a few tips about the marked parts in this screenshot:
Template: is the SCORM template to be used. With the default template the reporting data are sent after each slide, you can choose to send it only at the end if the course proves to be very slow and many users are taking it on the same network. However that means that when the connection is interrupted, the learner will have to retake the quiz slides.
Slide Views: be careful with using this instead or together with Quiz requirement. I often see problems when clients use a requirement of 100% of slide views. If you need to use that requirement, set the percentage bit lower at least. Much better is to use at least one scored object at the end slide, that needs to be clicked by the learner and which you can use for a score requirement.
Data to Report: in general most LMS’s prefer percentages, not points. Especially for SCORM 1.2 if the total score is higher than 100points.
Never Send Resume Data: under the Advanced button. That (negative) option is unchecked by default, which means that bookmarking is turned on. On a second session learner can return to the slide where he left in a previous session. If you check that option, learner will always be returned to the first slide. Setting up the alternative, bookmarking by the TOC (Self-paced learning) makes no sense when using a LMS.
In a previous article about Embedded objects some of the Settings about activating/deactivating buttons was already indicated Above I already mentioned several options under Quiz Preferences, Settings. In this new screenshot I marked some other choices:µ
Required: in almost all cases it is recommended to keep the default choice which is Optional. If you prefer one of the other choices it can lead to problems, where learners get stuck. There are better ways to achieve ‘Answer all’ or ‘Learner must take the quiz’. Set up the navigation in such a way that the learner cannot skip the quiz (do not use totally free navigation with the scrubbing bar in the playbar, or with the TOC). Once the learner is on the first question, with the default button setup he can only continue when he has answered the question. If you use remediation (go to content slide) you cannot use the more strict options neither.
Interaction ID Prefix: necessary when using same question pool in more courses to be reported to the same LMS.
Review mode navigation buttons: has to be activated if you allow Review (bit lower). If you forget those buttons, learner will be stuck on the first question slide during Review, unless you provide another navigation possibility.
Branch aware: may I point to a recent article where I explore in-depth this functionality which makes the quizzing system variables dynamic?
Show Progress: either Relative (Question x of y), or Absolute (Question x) allows to turn on/off the Progress indicator.
Allow Backward movement: it may seem strange that I allow this, whereas the Back button is unchecked on quiz slides (and playbar is hidden? Reason: if you want remediation, where the learner is sent to a content slide after failing a question, it should be possible to do so if that content slide is before the quiz.
Hide Playbar in Quiz: unless you have “Submit all” activated, you should hide the playbar at least on quizzes (if you have one in the course). Reason: it makes no sense because when going back to a previous quiz slide or content slide by playbar the learner will not be able to change the answer at all which makes it a frustrating experience.
Herre a screenshot of that easy dialog box (easy compared with the more complicated previous ones):
The passing score (cpQuizInfoQuizPassPercent or cpQuizInfoQuizPassPoints) can be set. In some cases it will prove necessary to check if same is used in the Manifest file. Again: prefer percentage to score.
If you have more than one attempt on Quiz level, you should activate the Retake button. It will appear on the socre slide as mentioned in the previous Quizzing post. In that post I also explained that the actions on Passing and Failing (after last attempt) only occur after reaching the last frame of the score slide.
This was a pretty boring article, hope you found some interesting documentation.
I didn’t yet talk about Pretest quizzes here, nor about the quiz slides in a VR project or 360 slides, nor about the KC slides in an interactive video. Articles are already pretty long. Will be in a later post.
Quizzing master slides have been mentioned several times. There is already one article about their setup for Fluid Boxes.
And some of you will be looking forward to possible ‘tweaks’? I have been creating so many cheating workflows, expect more in the future.
In the first two articles of this basic course about Quizzing, I explained the Terminology, and the Submit Process.
Those posts applied to all types of questions: scored, random, Knowledge Check, pretest slides. This post will be talking exclusively about scored (graded) quiz slides and random quiz slides which are graded. For those slides the results are stored in the quizzing system variables, and you can have the score slide in your course. You will get some tips about the default score slide at the end. Scoring doesn’t exist for Knowledge check slides, you can only choose attempts on question level, not on quiz level. Pretest questions have scoring as well, but the values are stored in different system variables, and are only meant to navigate the learner to another slide, based on the pretest result.
This article will explore the scoring and attempts on two available levels:
Setup for both is done in the Quiz Properties panel. That panel appears automatically in the newbie UI when you insert a quiz slide (or a random slide) in the right docking station. For quizzes however I strongly recommend to switch to the Expert UI (check the option ‘Enable custom Workspaces….’ under Preferences, General Settings). Set up a workspace where both the Quiz Properties and the Properties panel are visible. Reason is that you need the Properties panel for partial scored MCQ slides with multiple correct answers.
In the default setup the number of attempts for graded questions is set to 1. The feedback messages for Correct and Incomplete are checked and 1 Failure message. The actions for Success and Last Attempt are both set to Continue. You could check the option Infinite Attempts, but I strongly doubt you’ll want to have the learner in such an infinite loop. A limited number of attempts however can be a good choice. If you allow more than one attempt, do not forget to check the ‘Retry message’ because that is not done automatically. Have a look at this screenshot for True/False Question, to the arts marked with a blue rectangle. I set the number of attempts to , and checked Retry. The Failure message was left at its default 1 message.
I kept the default Continue actions as well, but moved the pausing point closer to the end of the question slide (see previous article) to minimize the waiting time after the second step of the Submit process.
Default score for all questions is set to 10 points. Since some LMS’s don’t like to see total scores greater than 100 points, and all questions don’t merit the same score you will certainly want to change those scores. BTW: later on I will offer an exploring post about the wonderful Advanced Interaction panel (F9), unknown to many because it never appears automatically in the newbie UI. It is not only about ‘advanced’ actions at all.
Changing the score happens in the Quiz Properties panel for all question types with a black/white score. B/W score means that you only get the score if everything is correct, score will be zero in all other cases. All question types, except the MCQ with multiple answers are validated with this rule, even Matching, Hotspot and Sequence. In the screenshot above (T/F), you see the score reduced to 4 points.
I also added a penalty: this score will be subtracted from the total score if the answer was wrong after the last attempt. You don’t have to enter a negative number here. Beware: in SCORM 1.2 reporting a negative result at the end will be reset to zero.
Have a look at this screenshot, set up for such a question slide, with 5 answers. Two out of them are correct, each has a positive score of 5 points. The 3 wrong answers get a penalty of 2 points each. Neither the score nor the penalty can be set up in the Quiz Properties panel, they are dimmed. You have to select each individual answer, and setup score in the Properties panel of that answer (visible in the screenshot as floating panel next to the Quiz Properties):
The 4th answer, wrong answer, is selected in this screenshot. There is no Penalty field in the Properties panel, tab ‘Options’, only ‘points’. Since this needs to be a penalty I entered -2points. Same for the other wrong answers. The correct answers got positive points (5 for each). The dimmed numbers for Score and Penalty on the Quiz Properties panel are calculated by Captivate to 10 points and 6 points. I had to check the ‘Partial correct’ message, was not done automatically although Multiple answers was chosen.
In this example I changed the actions (Success/Last Attempt) to ‘Go to Next Slide’, didn’t move the pausing point of the quiz slide. This is the second possibility to narrow the waiting time after Submitting the result.
You see that 3 attempts are possible for this question (green markings). But the Retry message is unavailable, dimmed. Reason is that I have chosen to show 3 Failure messages, different one after each attempt. You need to include the warning about clicking the slide (or pressing Y) for the last Failure message which appears after the last attempt.
These quizzing system variables (see also: Using Quizzing System Variables) are linked to individual question slides:
The number of allowed attempts on (total) quiz level is set up in the Quiz Preferences, Pass or Fail. Default setup is one attempt. If you allow multiple attempts, don’t forget to check the option to ‘Show Retake Button’. When clicking that button, all questions will be reset and the quiz system variables will be cleared.
If you also allow Review (Quiz Preferences, Settings), you have to be aware of the fact that all attempts on Quiz level will be considered to be exhausted if the learner clicks the Review button (also on the score slide). To prevent confusion use this easy trick: drag the Retake button on top of the Review button on the results master slide (or the score slide). Once the attempts are exhausted the Retake button will disappear and Review button becomes visible. Problem is that this is perfectly possible for a non-responsive (blank) project or a responsive project with Breakpoints. But a normal fluid box doesn’t allow stacking of buttons, unless you define the fluid box as being static. I will post a workaround in my “tweaking posts”, later in the Quiz sequence of posts.
The Total Score on quiz level will be calculated from all the scored objects in the course (see Advanced Interaction panel) and stored in a quizzing system variable cpQuizInfoTotalQuizPoints. Except for the feature ‘Branch aware’ that will be a fixed number when starting the course. Other quizzing variables (see post) linked to the quiz level are:
The Continue button on the Score slide has about the same functionality and importance as the Submit button on quiz slides. That actions specified under Quiz Preferences, Pass or Fail (after Last attempt on Quiz level) will be done after clicking that button. The pausing point on the score slide is linked with that button. You can move that pausing point the same way as for the quiz slides, closer to the end of the score slide. It is recommended not to have the score slide as last slide in a course, but have at least one more slide. That way you’ll be sure that the results will be transferred to the LMS.
In a first article about Quizzes I introduced some terminology and one of those terms is ‘Embedded Objects’: those objects on the quizzing slides and master slides which have no individual timeline, but have functionality built in. Some of those objects can be turned off, using either Quiz Preferences (for global settings) or Quiz Properties for individual slides. Here is an overview of those objects (for quiz master slide MCQ,T/F….), from top to bottom, using the numbering in this screenshot:
7. Clear button: can be turned on/off both globally (see the screenshot above from Quiz Preferences, Settings). In the default setting it is turned off. It is possible also to turn on/off on individual quiz slides using th Quiz Properties (see screenshot top right).
8. Back button: is a bit confusing. You can turn off ‘Allow Backward movement’ in the Quiz Preferences, which will automatically result in having the Back button disappear on quiz slides. However, when using remediation, where you want to send the learner back to a content slide, you have to turn this option on. Having a Back button on a questions slide is not a good idea, since answers are frozen once the question slide is left. Learners cannot re-enter an answer. One exception: when Submit All is turned on (see future article). Even when ‘Allow Backward movement’ is turned on, you can still check off theBack button on all quiz slides with Quiz Preferences, Settings. You can also do it individually using the Quiz Properties for the question slide.
9. Skip button; is turned off by default, can be turned on both globally and for individual quiz slides.
10. SUBMIT button: is the most important object on this slide. There is no way to turn it off, not globally nor individually. It is that button which is responsible fir the two-step Submit process. Remember: quiz slides have a pausing point by default which cannot be turned off (you can move it only with the mouse).
When the learner clicks the Submit button:
Feedback message appears, playhead is not released but remains paused at the pausing point. If you have added slide audio to the question slide and it is not finished, it will continue playing. The pausing point will not stop the audio. Four possible situation in this first step:
All messages, except the Retry message and the intermediate failure messages (not the last one) should indicate how to trigger the second step. For all types of quiz slides, except the overlay quiz slides in a VR project, that will be ‘click the slide or press Y’.
The goal of this first step is to offer the learner as much time as necessary to read the feedback messages. Some developers don’t like the present workflow, will post some possible tweaks in a future post. Personally I hope that the new workflow for the overlay quiz slides in VR projects, which is more user friendly, will be extended to the other types of quiz slides.
When the user clicks the slide or presses Y:
With this step the playhead will be released, same way as what happens with an action when the option ‘Continue Playing the Project’ is activated. It can only happen in two cases: for a correct answer, or for a Last attempt answer.
Since 2008 I have been blogging regularly about Captivate. The most visited post is a rather old one date October 2011. It is labeled ‘Question Question Slides‘ and believe me, still has daily views. It is the reason why I consider Quizzes as one of the three main topics for any Newbie in ‘Three Skills to Acquire‘. Since 2011 quite a lot has changed in Captivate, although the basic design of quizzes is still the same. Many peers have asked me in the past to publish a book about Quizzes (could easily fill a book if it included custom questions). From what I feel in the community, a book is not at all the appropriate medium anymore. However I want to publish a sequence of articles about Quizzes, as I did for the Timeline (another stumbling block), with up-to-date information. It is important to understand the terminology, which is a problem when trying to answer questions everywhere: there is no ‘official’ glossary for Captivate and lot of terms are used in a haphazard way. To avoid any misunderstanding in future posts about Quizzes, I want to start with explanation of the different terms concerning quizzes. Some are ‘official’ also to be found in the Help documentation, some are terms I am using as well.
Drag&Drop will not be included in this sequence of articles, it is not following all the rules of the normal question types
Although you can insert Question slides and Knowledge Check Slides from the big button Slides, the place to be is the Quiz menu:
The red box shows the 4 possible choices:
Is based on a dedicated Quizzing Master slide, depending on the type: True/False, Multiple Choice, Fill-in-the-Blank, Short Answer and Sequence have the same master slide, Matching, Hotspot and Likert have each an individual master slide. Beware: Likert type cannot be used in a responsive project, whether Fluid Boxes or Breakpoint workflow is used.
An inserted Question slide will have these settings by default (except Likert which is set to Survey):
Most settings can be changed. Only one type has the possibility for partial scoring: MCQ with multiple correct answers. MCQ with one correct answer has the functionality of Advanced Answers (message/action). If number of attempts is higher than 1, you can have up to 3 Failure messages.
Question slides have a dedicated category of system variables, read-only. More information in this post
You can use the On Enter event of a question slide to trigger a custom action, but not the On Exit event. Question slides, like interactive objects have a Success and a Last Attempt event which can be used for actions.
Is a placeholder slide, which will be replaced by a random question from a question pool. Pool questions are based on the same quizzing master slides as normal question slides. On Enter event can be used on slides in the pool, not on the placeholder slide. The same quizzing system variables are used for random question slides as for the normal question slides.
You find the option for Random slides also in the dialog box ‘Insert Question’ which you open with Quiz, Question slide.
More details about this type in Random Questions, Do’s and Don’ts
Slides are based on the same master slides as the normal question slides. They have a special bunch of system variables, will not be included in the variables used for question and random slides. The Pretest slides have only one goal: to have navigation after the pretest based on the results. For that reason you set up a Pretest action. These special slides have limitations:
This new type was introduced with Captivate 9. Likert questions nor random questions can be used. They are not scored, will not be present in the quizzing system variables nor in Review/Retake. They can be recognized by a special icon in the Filmstrip. This is the default setup:
Some featured can be changed: you can limit the attempts and will then get a Last Attempt action. You can turn on Failure message(s).
A complete comparison with normal quiz slides can be found in Tips for Knowledge Slides
TIPS:
PS: KC slides can also be used as Overlay slides in an Interactive video. You’ll find more details in Tips for Interactive Video.
Question slides can be used in 360 slides and VR projects. Styling of those slides is limited at this moment, cannot be based on a custom theme.
Instead of adding the question/answers in the individual slides, Captivate allows two alternatives, one of them being GIFT import. Moodle developed this ‘language’, you can find the full documentation here. Use a text editor which allows to publish to non-formatted txt files. This file can be used to insert all types of questions in Captivate with the exception of Likert, Hotspot and Sequence types. There are also workflows which start from an Excel file.
Lot of features are supported: for MCQ with multiple correct answers you can set up partial scoring, you can add feedback messages etc.
GIFT import is possible for normal question slides, for slides in a question pool. It is NOT possible for Pretest slides, nor for Knowledge Check Slides.
Especially when dealing with big amounts of question slides, and/or many pools I like to keep the questions ready in a GIFT file as backup and for eventual editing
New import workflow appeared with CP2019: use of an Excel template which will create a CSV file that can be imported. You’ll need two files which are stored in the GalleryQuiz under the installation folder of Captivate. I published a small article about this workflow. Using the macros in CSVQuestionsCreationMacro file is pretty straightforward and documented in this tutorial by Dr. Pooja Jaisingh. Same question slides are supported as for GIFT import (T/F, MCQ, Matching, FIB and Short Answer). There are some limitations, reason why I still stick to the GIFT alternative:
All types of question slides described above are using the Quizzing Master slides. Each theme in Captivate needs at least 6 master slides, whether it is a blank (non-responsive) project, a Fluid Boxes (responsive) or a Breakpoint Views (responsive) project. Blank master slide is always required (for PPT import an software simulations), 4 question master slides and one score master slide. The Blank theme used to show this minimum set, but for some reason in CP2019 a Title master slide was added (?) which I deleted in this screenshot.
I will focus on editing those quizzing master slides in a later article. In this introduction I just want to point out some very special aspects of those slides.
The timeline of the quizzing master slides, and the result master slide is very simple: you see only the slide timeline. There are no placeholders, no object timelines like you normally find on content master slides. However when you look at the content of those master slides, you see a lot of objects!
You don’t see any pausing point on the master slides, not for the questions, nor for the score master. However when you insert a question slide (any type) it gets automatically a pausing point at 1.5secs. Same for the Score slide.
When you select an object on the master slide (button, a feedback, Question, Answer area) they still don’t show a timeline. Their properties will appear. I will point to the objects in a question (master) slide or a score (master) slide as:
My definition: objects that do not have an individual timeline, not on the master slide nor on the slide itself. Those objects have functionality built in, which control the workflow for the slide. I talk about the Submit process (see future article), the appearance of messages, the inclusion in quizzing system variables etc. Just one tip: be careful when dealing with Embedded objects.
Those objects have absolute priority in the z-order, also known as stacking order. They will always appear on top of extra inserted custom objects.
Puzzling: normally the only interactive object allowed on a master slide is a shape converted to a shape button. However on the quizzing and score master slides the used buttons are all Transparent buttons.
When creating a question slide or a score slide, not all objects will appear. It depends on the setup in Quiz Preferences (see later article), the Quiz Properties of the slide and… on the situation. The Review Navigation buttons (with the double arrows) on quiz slides will only appear during Review. The Retake button on the score slide can only appear if more than one Attempt on Quiz level is allowed.
So much has to be told about Quizzing, always more than I expected. In future posts I will try to write about:
I am sure this list is not complete. If you want to add more ideas, feel free to comment.
Randomizing exists in some limited situations in Captivate:
However in all other situations you need to use JavaScript to get a randomized number (or text). This short blog is meant as an answer to a user request in the eLearning community, to be found under this link. In my blog you will find multiple examples of randomizing for games. This is a very simple example since the user only wants to have a random card chosen from a deck on clicking the deck. A second click on the deck needs to flip back to the cover of the cards.
There is only one slide in this project besides the Title slide. The three (tarot) decks are identical, have 14 cards. Try it out. You may get some ideas how to use this workflow for games. In the future I will post more examples of this workflow in a bigger tutorial project.
This example can be watched below (fixed size) or you can click this link for a rescalable version.
Decks are multistate objects with 15 states. The Normal state shows the cover. Due to the script the labeling is important for the other custom states. They are all labeled Cardx where x is a number corresponding with the rank of the card. The three decks in the example are identical, but you can have decks with a different number of cards, just use the same logic for the numbering. Look at the Object state panel for Deck1:
In Captivate I need only one variable for each deck to follow up the status: is it showing the cover, or a random card? Two possibilities means that I can use a Boolean variable. When the cover is visible, the variable has the value 0, for a random card it has the value 1.
Click boxes trigger a conditional advanced action. Here is the action for the first click box (CB_1) over Deck1:
The Boolean variable v_1 is checked. If it has the value 0, a random card needs to be shown which is done by a JS script (see below), and the variable is toggled to 1. If it has the value 1, the cover (which is the Normal state) is shown.
For the second and third deck, the variable and the name of the deck need to be edited.
Javascript
The used trick is to create the name of the state by concatenation of two strings:
I have explained in depth the use of Math.floor(Math.random()*(max-min))+min) in an older blog post:
That random number is converted to a string with a JS method. Result of the concatenation is the name of one of the states in the deck multistate object.
For the second and third deck, the deck name need to be changed in this script. If you do have more or less cards in those decks you need to edit the maximum number (here set at 15).
This basic example may have ignited your creativeness? What about creation of a jackpot game? A funny mathematics exercise for your kids? A board game where you use a dice?
For this use case it is impossible to create a shared action. One of my long-standing feature requests for actions is the possibility to generate a command using concatenation. A second one: being able to change a state based on a variable.
If you have followed me since a while, you know that I am a great fan of Shared actions. However I am aware that many developers seem to be afraid of those shared actions. In this post I will try to demystify the 'shared action', and answer some questions.
First of all: the biggest advantage of a shared action is its reusability. Whenever you need an action which will be used multiple times in a project, or which you plan to use in more than one project, it is worthwhile to consider the use of a shared action. Here are some other reasons. You can skip this part and come back to it later:
There are some limitations to shared actions:
Beware: not all advanced actions are suited as shared action. In a recent post about 'Hint after x failed clicks' I explained a use case which was meant as introduction for Captivate users new to variables and advanced actions. You may have a look at that first blog post: https://blog.lilybiri.com/automatic-hint-after-x-failed-clicks
It is a good idea to create and test the action as advanced action before creating the shared action. This was the advanced action created in the mentioned blog post, triggered by the Success event of the 'wrong' hotspots (5) in the example:
Two user variables were used:
Open the advanced action in the dialog box, use the button Save as Shared action, and this dialog box will appear:
In the screenshot you see that I have filled in the description. It is important to do so, try to explain in short sentences what the action will do exactly. It may seem a loss of time, but if you reuse the action a couple of months later, you'll understand why I emphasize this.
In the main part you see the 'parameters', and in this particular case all of them show the green check mark. This means that you can save the shared action as it is. Result will be that the parameters remain static, cannot be changed when you attach the action to an event. They will not need a description neither. Comparing with the advanced action:
Pro
Con
In the first screenshot I marked two parameters with a question mark:
You can make the static parameter dynamic by clicking the check box, and entering a description for the parameter. To me the most important candidate is the Hint text. Making that parameter dynamic, means that you can enter a different Hint text for each new attachment of the action to an event. Beware: the correct checkmark will only appear after confirming the description of the active parameter:
This makes the action flexible: you only have to enter the Hint text as parameter whenever you attach the shared action to an event.
Pro
Con
You can make the action even more flexible by declaring the number of wrong clicks to be a dynamic parameter. Using that shared action you'll be able to change the number of wrong clicks before showing the Hint instead of the Failure message. Like increasing the number for a more complicated hotspot slide. I don't have to explain this screenshot anymore:
I may write out a third blog about using this shared action as template for advanced actions, including possible enhancement by adding graphical (audio) assets to the Hint text message.
If you want to learn more about using Shared actions, please have a look at my 'crash course'.
To circumvent the "Con" of shared actions not being able to apply to multiple events at once, remember that you can easily create an advanced action from a shared action. Here is an example:
Using Shared action as template
This short blog post is created to answer a question in the Adobe forum about clicking an interactive object with multiple attempts. After two wrong clicks, the Retry message should be replaced by a Hint message. There are multiple workflows possible, but I tried with this simple solution to use as much of the existing features as possible. The Hint will be only text. A more elaborate solution could be a Hint where the text is accompanied with a highlight box and/or other graphical elements. If useful, could create such an example as well. This one is meant for relative new users of Captivate, hence the step-by-step workflow.
Watch this published 3 slides project, using this link (for a scalable version).
On the second slide you'll see the results of the workflow: learner is asked to click the correct button. Number of attempts was set to Infinite but could also be lower. First two wrong clicks lead to a Retry message, on the third wrong click the Hint message replaces the Retry message.
Have a look at this screenshot, where the slide (2) and its timeline are visible:
The six interactive objects are shape buttons (Alpha and Stroke both set to 0) over the buttons of the image. One of them deserves the correct click and the other ones are wrong choices. All buttons have the default pausing point at 1.5secs. They will all trigger an advanced action, which means the slide will remain paused. You see the Correct feedback message, using the Default Success Shape style (messages are no captions, but shapes).
The workflow needs setting up two user variables using the Project menu, option Variables:
The first variable is easy to understand. The variable v_failure will be used as placeholder in a default feedback message. That makes the message 'dynamic': by changing the value of the variable, message text will change. This is the only way to achieve such a change, because those default feedback messages do not support multiple states (although the States button is active, you cannot add states). You'll learn which message to use in the next part.
As mentioned before, I did set up the 6 shape buttons with Infinite Attempts. This means that they are left with only the Success event, which occurs on clicking the button. Only the Success message will be necessary. That may seem illogical, is linked with the Captivate meaning of Success and Failure. Success means the button has been clicked, Failure means the click happens outside of the button. You understand that clicking outside of a button is useless here.
Clicking the Correct button should result in navigation to the next slide with the simple action 'Go to Next Slide' (happens to be the default simple action). That navigation will not happen immediately after clicking the button because the option 'Pause for Success/Failure Captions' is activated. Display time for those messages (because they often are not in a caption, but in a shape) is 3 seconds, can be changed in the Timing Properties. See the full setup in this screenshot:
The correct feedback message can be edited on the stage, uses the Default Success Shape style.
Dynamic Message
Clicking the Wrong buttons will also show the Success feedback message, and you'll get 5 of them. For the learner they should look like Retry (or Hint) messages, so I choose another Shape style for these messages (see screenshot Slide setup). Since they are linked to their buttons and all appear in a different location I also used the Align, Align and Resize to the same size from the right-click menu after selecting the 5 messages.
The trick here is to fill those messages with the same user variable v_failure to replace the normal success text. Do this by using the X-button in the Character part of the Properties panel of the message while in editing mode:
That X-button will show the 'Insert Variable' dialog box. User variable is the default choice, you just need to choose v_failure from the dropdown list. Important: the default 'length' is set to 50 characters, if you expect a longer text increase that amount. In this screenshot I increase it to 100:
Advanced Action FailureAct
This is a screenshot of the Preview window of that action:
You see that this action has two decisions:
Decision 'Tracking' is non conditional. It consist of one Increment action for the variable v_attempts.
Decision 'Message' is conditional, has only the THEN part, not an Else part. When the attempts are greater or equal to 2, the text in the variable v_failure is changed to the Hint text. Of course it is possible to change that amount of attempts if wanted.
If you allow the learner to revisit the slide, and want to have the identical situation of the first visit, it will be necessary to Reset the variables. You'll need this non-conditional advanced action, to be triggered by the On Enter slide event:
Both variables v_attempts and v_failure are reset to their original values. Because an advanced action is not releasing the play head, I added Continue. In this example it is not really necessary, but it would mean that the play head remains in the first frame and is not advancing to the pausing point at 1.5 secs. It is possible with other setups, like having an effect or animation that you need that release of the play head.
]]>You will not find in this blog post details about the basics of creating a Video Demo (cpvc-project) in Captivate, just some practical tips which could make the workflow easier.
Since I rarely use the possibility to capture from webcam along with the screen recording, you'll not find tips about that neither. Many users reported issues with webcams or cameras. Sorry you'll not find a solution for those issues neither.
You'll need a solid 'storyboard', similar to what you need for a software simulation. My preparation always includes:
As mentioned at the beginning, I will focus on screen recording, not webcam recording.
The Video Demo editor has a lot of features, and editing is non-destructive. Although it is possible to do some editing in specific editing applications like Premiere Pro and Rush (see later), those applications need a published MP4-file. It is important to do use the editor before switching to those other applications.
Software simulations often need Full Motion Recording slides for mouse movements. Those slides are short videos, which are still based on the original SWF technology (FLV slides). Although they will be converted to MP4 when published, several developers have reported issues with the conversion. You can avoid those problems by replacing the FMR slide by Video Demo slides. The easiest way is during recording:
The Video Demo editor has great features for mouse management, Pan and Zoom, inserting static objects. However if you want to uplevel your video with great intro and outro, you need a real video editor. This can only be used with published MP4 footage. I used Premiere Pro in the past, but always found it rather challenging for the small improvements to the videos. Adobe launched Rush a couple of years ago, available for phones, tablets and desktop. It has exactly the amount of features needed to embellish your Video Demo projects. If you have a license to Creative Cloud, give it a try:
It is no secret that I am not a big fan of passive video, because due to my decades of experience with coaching/training/teaching interactivity is my first goal. A recorded Video Demo is perfect to use as Interactive Video to enhance its learning efficiency. It is not offering a big amount of interactivity but way better than passive video. Here is an example:
Custom Play/Pause button
That interaction is meant in the first place to show the learner the exact time he spent on a course. In that situation the interaction is often timed for the rest of the project. However it can be used in other situations. This blog is due to a user request on the Adobe forums, have a look at this link. Summarized: the course should be exited automatically when a slide is displayed longer than a certain time, because it means that the learner probably disappeared without closing the course. That caused issues due to the LMS when retaking a new session for that course.
I used one of my previous projects to show the result of the proposed workflow. In this case the course will be exited on each slide if it is displayed for more than 3 minutes. Of course it is perfectly possible to edit that duration, or even have a different duration for each slide as you'll see in the described setup workflow. Try to be patient on at least one slide to let the 3 minutes elapse and see the course automatic exit. You can open this course in a scalable version using this link, or you can watch the embedded non-scalable one below.
When you insert a Timer interaction, you'll have to define the properties in this dialog box:
You need to define the amount of time (here 3 minutes 0 seconds) for the timer, and whether you want to count down or up. In a normal situation you can have a message popping up after the end of the counting, but in this case it was not needed. I marked three fields in this screenshot:
Even after closing the dialog box, you can always reopen it using the pencil icon in its Properties panel:
Variable: Although each slide will have an instance of the Timer Interaction, the created user variable v_timer (see screenshot under Basics) can be used for all instances. The value will automatically be reset to 0 on a slide with a new instance of the interaction. It will be toggled to 1 only when the Timeout occurs on a slide, and then the course will exit. Variables do not keep their value when closing a session.
Timing Interaction instances: insert an interaction on the first slide where you want to enable the timeout, and resize it and set up the properties as indicated in the screenshot under Basics. Since its visibility is not wanted, there are two ways to make this possible. Remember that the background already has been made transparent (see screenshot of the dialog box):
You can copy/paste the interaction to the other slides without any problem. All fields will be the same. Only two possible exceptions which can need editing: the text color field (if using the first method above) and the time duration if you don't like to have the same timeout settings for each slide.
Dummy slide: in this case I used a very short slide at the beginning of the project, duration = 0.1second. It is not really necessary to use such a slide, you can choose any slide of the project. These are the reasons for my choice:
Advanced action
The On Enter event of the Dummy slide triggers this advanced action:
Since this is the first slide, it has to continue to the next slide on first visit. That is the reason for the conditional action, because on first visit the timer variable v_timer will have its default value (0). Only when the slide is visited from another slide where timeout has occurred, that variable will be set to 1.
Before exiting the navigation is returned to the "last visited slide" in order not to mess up bookmarking by LMS: last visited slide (bookmarked) will be the slide where timeout occurred. If you don't want bookmarking by LMS, you can delete that command.
User insisted on a workflow that was easily to be reproduced in multiple projects, both responsive and non-responsive.
For another non-responsive project:
For a fluid boxes project:
Recently I answered several questions about button states, which proved that some information is missing. For that reason I checked the official Captivate document, and indeed to me it is not at all complete especially for buttons which are the most used interactive objects. You can have a look:
Work with multi-state objects in Adobe Captivate
Some examples: the InBuilt state 'Visited' is not mentioned at all. I couldn't find any information about the lock of InBuilt states for buttons and how to circumvent it. The recent added button types - SVG and Bitmap images - are not even mentioned. What is the meaning of the blue and red selection rectangles in button state objects? Several years ago I published an extensive blog about the InBuilt states for Drag&Drop objects (Inbuilt D&D states) to fill in gaps in the Help document. With this blog I will try to summarize tips and workarounds for InBuilt states for buttons. After a short recapitulation of typical features of Button states, you'll get some examples.
Buttons of any type have by default three InBuilt states: Normal, Rollover and Down. Those three states are part of the object styles for text buttons, image buttons, transparent buttons and shapes (because they can always be converted to shape buttons). However no object styles can be created for bitmap images and SVGs used as buttons, the most recent types added in version 11.5.
Less known is the fourth InBuilt state: Visited, probably because you always need to create that state. It cannot be included in the object style for the four mentioned button types neither which is a pity. Audio can be attached to the Visited state and Normal state, while that is impossible for the Rollover and Down state
InBuilt states will appear in specific situations. Rollover when hovering over the button, Down while button is pressed, Visited after the button has been pressed and released. However the Visited state can also be set using the Change State action which is impossible for any other InBuilt state (for buttons and D&D objects). Like with custom states, you can add Audio to the InBuilt states. Here are two tips based on that knowledge:
Tip 1: The Down state will disappear when you release the button. If you want to keep the down state after release, use the Visited state, looking identical to the Down state. This is valid for both responsive and non-responsive projects.
Contrary to audio which can only be added to the InBuilt states Normal and Visited, you can add extra objects to all InBuilt states. However this is only possible in non-responsive (Blank) projects and in static fluid boxes. Normal fluid boxes do not allow adding extra objects to a state (due to the stack prohibition).
This aspect opens a lot of tweaking possibilities. Those extra objects are not locked, nor do they need to be of the same type. Contrary to the locked button states which have a blue outline marker, extra objects will have a red outline marker (see screenshot under Tip 3). There is no real limit to the number of objects you can add. Whereas audio cannot be added to Rollover or Down states, you can add extra objects to those states.
Tip 3: Create a tooltip for a button by adding a text (or other object) to the Rollover state.
Tip 4: Quick Click/Reveal workflow, using a button with a custom state derived from the Normal state but with the Reveal objects added to it. Use 'Go to Next State' for that button, and you have a toggle button, which will hide the revealed objects when clicking again. When using a variable as explained here, you have even more control.
Tip 5: Can you increase the size of a shape button in Rollover state, was another recent question? The forementioned trick with a bigger bounding box in the Normal state is not functional in that case. Here is another possibility:
Of course you can this also apply on the Down state and/or with a smaller version of the button, see screenshot:
Tip 6: Starting with an invisible Normal state for a shape button (Alpha and stroke set to 0) and adding an object to that state within the bounding box of the shape button, allows you to create a rotating button. A full description of the workflow can be found in this blog post. Of course this means the clickable area will be greater than the image itself, but most learners will not detect that incongruity.
You'll for sure know about more examples to use button states in a creative way. Feel free to post your ideas in a comment, always appreciated.
]]>Motion effects can be customized in many ways. Pausing Captivate's timeline will also pause automatically any effect if it is not finished. This feature can be used to make boring slides more engaging. To see what I mean, have a look at this example file. It has three slides using that approach:
You can watch the example file full screen by clicking this link.
Or have a look at this embedded example:
Each of these three steps will be explained in detail below:
The detailed explanation will be done using the first example ‘Business Model’ . Explore its timeline:
Slide background is a a shape filled with a gradient. That shape was duplicated to be a cover, which is stacked on top of the Infographic (with the images) and the Next button. Motion effect will be attached to that cover shape. On top of the cover you’ll see the Play button (no pausing point), title and instruction text. The Next button has a pausing point which needs to be after the end of the motion effect.
The effect applied to the cover is a simple Left-to-Right motion path. It has no easing because easing would be applied to the start and/on end of the complete path, but you’ll use it in fractions. This linear path will be cut in 6 parts. I used a vertical guides grid to visualize the 6 fractions, and make sure that each guide is in between two images. Have a look at this screenshot, showing the guides and their setup (using View, Create Multiple Guides):
Motion path is visible on the stage with end and start points. Those points are always connected to the center of the bounding box of the shape. The start point is at 1024/2px = 512px because the project width is 1024px. You need to extend the length of the path by moving the end point horizontally (keep SHIFT key pressed) to the X coordinate 512+1024px = 1536px. For that reason I added another vertical guide at 1536px. Turning the snap on for the guides helps to position the end point. See screenshot:
For the duration of the Effect, start from the time to use for each fraction. I found that using a time between 1 and 2 seconds is fine. As you can see in the timeline screenshot above, for this slide a duration of 1.5secs was chosen, leading to the Effect duration of 9secs. If you look closer to the Timeline, you’ll see that the effect duration is slightly shorter, because of step 3: tweaking.
At first sight the needed advanced action for the Play button seems to be rather simple.:
However, there is no way to prevent the learner to click the Play button after the motion effect ended, and the Continue command would then override the pausing point of the Next button, which you probably want to avoid. To prevent this you need a way to track the end of the motion path. Using a variable v_counter for tracking is an easy way. Although you could use one conditional decision, I like to separate the advanced action in two decisions. Have a look at this screenshot of the basic PlayMotion action:
Supposed here is a starting value of 0 for the variable v_counter. When all 6 parts have been ‘discovered’ the Play button will be hidden. It could be possible to replace that Hide action by a pure Pause action, but it would lead to frustrated learners.
If you try out this basic action for the Business Model slide, you’ll have a flickering problem. That has been a pain since many versions. In the Tweaking section of this blog, I will show you how to solve this. Moreover in the video displayed in the previous post, you’ll see that the first part of the effect is deployed immediately. There is also need for an On Enter action on all the slides, to reset everything in the original situation including the value of the counter variable.
This simple slide didn’t need to have another action to be done besides part of the motion effect. That is not the case for the Steps nor the Hurdles slides. The extra actions need to be inserted before the Delay command in the Always decision. Look at the versions for the Hurdles slide. Multistate objects were used to show explanations. There are 4 parts. At the end the Play button (is in a group with a Tooltip) needs to be hidden, and the group of extra buttons made visible:
When testing the project with F11, Preview HTML in Browser, you'll see that the timing is not perfect: motion effect. There are two ways to tweak this timing, and often both are needed:
You’ll need such an action to reset the situation if the learner is allowed to revisit the slide, and also to be able to reuse the unique variable v_counter. Whenever possible, avoid to create multiple variables if you can reuse the same variable. Here is a simple On Enter action for the Steps slide:
As promised, here is the On Enter action for the Business Model slide, which is more complicated because it solves the flicker issue, and will show the first part of the image (Hence the Assign to 1 command for the counter variable):
To avoid the flickering of the InfoGraphic image, it is hidden to start with and shown after 0.3secs. I also added a Fade in Transition The starting value of the variable is now 1 instead of 0. To deploy the first part of the infographics you’ll see the same actions as in the Play button action. The total delay for this first part is 1.6secs.
It would be wonderful to hear how the described workflow could inspire you for your projects..
Creating custom paths - curved or polygonal - comes with some issues:
If you want to learn how to overcome those issues, please let me know.
This short blog post is meant to answer another question on the Adobe forums. It is at the end of this thread:
https://community.adobe.com/t5/captivate-discussions/pausing-slide-audio/td-p/12312792
This was the goal:
This learner tried to solve this with simple actions, using the feature 'Pause slide audio when clicked'. It cannot be solved that way however.
Watch this short project created to double-check my proposed workflow with a shared action for the shape buttons. After the Title slide you'll see a slide with a Next button to pause the slide, and a shared action triggered by each of the shape buttons. A copy of the Timeline panel can be found on the third slide. I used some slides from the Aspire Quick Start Project.
You can open a rescalable version using this link or watch the embedded version below:
You could see the slide audio (narration) in the Timeline panel. The audio clips for the shape buttons were imported to the Project library, and their exact duration was checked, because it will be needed in the shared action. Have a look at the shared action with its two parameters (name audio clip and duration clip):
It has two parameters:
The command Pause in the action will pause the slide audio automatically, contrary to a pausing point of an interactive object. You don't have to change any setting in the shape button Properties. The Continue command which will be done at the end of the audio clip will take care of resuming the slide audio.
Do not bother about having two clips playing at the same time. If the learner clicks another shape button before the first audio clip ends, that first clip is stopped automatically. No need to add a command like 'Stop triggered audio' which is only needed when you want to stop a playing clip without playing a new at the same time.
The user is concerned that applying the shared action will take more time than the approach he tried out with simple actions. However, since you don't have to change settings in the shape button Properties panel, the shared action approach needs even less clicks. Check it out. There is no danger of choking Captivate which could happen if you use duplicate advanced actions since you are using instances of one shared action (ecologically).
The previous solution works fine until the learner has reached the pausing point of the Next button. At that moment, the Continue command in the shared action will override the pausing and the playhead will continue until it reaches the end of the slide and moves to the next slide. It is necessary to cope with that different situation. The Delay command nor the Continue command take into account possible pausing points.
There are two different situations, each needing a different workflow:
This screenshot shows the Timeline panel, illustrating the two situations. Situation 1 in red, situation 2 in blue.
This needs apparently a conditional action for the shape buttons. You have to figure out which situation is valid. For that reason you need to know when the narration has ended. It is easy to see its duration in the timeline, in this case it was 28secs. To calculate the frame number at the end of the frame I used micro-navigation. If you are new to this type of navigation, please have a look at this blog post:
You need two user variables:
Contrary to the timeline panel where seconds restart on each slide, the frame numbering continues throughout the project.
This shared action will be triggered with the Slide Enter event, and is meant to calculate the value of v_stop. Have a look:
The first frame number of the slide is stored in v_start. The duration of the narration is converted to frames, by multiplying with the system variable cpInfoFPS. The only parameter is that duration.
The former standard action has been transformed to a conditional action:
Same parameters as before. The condition checks if the learner clicked the shape button before or after the end of the narration. Only when the narration hadn't been finished it will need to resume. That has been done with the Delay command and Continue. That is not necessary after reaching the end of the narration, because the pausing point of the Next button needs to be kept pausing, and the narration doesn't need to resume.
This shared action is needed for each of the interactive objects used to play an audio clip. In the project I used shape buttons. They are visible in the timeline screenshot as SB_Topic1…. SB_Topic4.
By using shared actions instead of duplicate advanced actions, you avoid choking the project if you need lot of those actions which was the case for the user asking the question. Moreover multiple instances of the same shared action also will result in a smaller file size. Of course they are also very easy to transfer to future projects. You can learn more about using shared actions in these videos:
]]>One of the reasons I started using eLearning assets as professor in a university college, was to offer students a more personalized learning experience. In this blog I will not expand on that goal, but show how you can use an ignored feature of advanced actions in combination with multistate objects to offer the choice or a personal avatar.
Do you know that several simple actions (dropdown list in the Actions tab for a slide or an interactive object) also appear as possible commands in advanced action, but that they are ‘enhanced’? Typical examples are:
Have a look at this example. You can use the Table of Content (custom button) to navigate freely. This project has:
Have fun:
Lot of multistate objects were used in the project:
The four buttons with the avatars are SVGs used as buttons. The InBuilt states Rollover and Down were deleted, but a custom state labeled 'Chosen' was added to show the selected avatar by adding a white-stroked border (shape) to the original avatar image.
The images SV_Candidate (Flashlight), and People (CareerSteps) have 4 states. The Normal state shows by default the first male avatar. This screenshot shows the states for SV_Candidate, the one for People is similar. They use the same names for the states.
The image KCMessage (KnowledgeCheck) has 5 states, the Normal state being an empty shape (Alpha and Stroke both set to 0). It is just an alternative, because that message needs to be hidden with the On Enter action of this slide. Reason: the message should pop up only after clicking the Submit button. Same names are used for the states, but M1 is new since it is no longer the Normal state:
Those advanced actions are triggered by the Success event of the the buttons on slide AvatarChoice. Here is an example screenshot for the button SVB_W1, the action W1Act:
The four first commands, changing states, take care of the buttons on the slide itself. Only the clicked button will switch to the second state 'Chosen'. You can easily adapt those commands for more or less buttons on that slide, in this case there were 4 buttons.
The three later commands switch the multistate objects on the other slides to the appropriate state. Add similar commands if you have more than 3 slides to propagate the choice.
Beware: it is important to check the option 'Retain state on slide revisit' for the multistate objects on the three slides where the chosen avatar has to be solidified. If you don't do that, the choice will be visible only on the first visit of that slide, not on later visits.
The On Enter slide event is used to hide the multistate object 'KC_Message'.
For the setup of the actions on the slide, refer to this screenshot:
It is of course possible to have different feedback messages, by using conditional actions, but that was not the goal of this blog post.
You cannot have any multistate object in a default feedback message (Failure, Success) on a question/knowledge check slide. That is why you need to create a custom solution.
Why did I not choose for my favourite shared actions in this particular use case? Reason is that such a shared action would need a lot of parameters, even for this short project: 7 for the multistate objects, 4 for the states on the AvatarChoice slide, and 3 for the to be changed state on the other slides. That results in 14 parameters! It is much easier to edit the duplicate advanced actions in this case than applying shared actions with 14 parameters.
Recently the question appeared a couple of times in the forums: is it possible to delay the appearance of the Next button until all tabs in the learning interaction Tabs have been clicked. This ‘Forced view’ request has been documented many times for normal click/reveal interactions and for a branching scenario. However the limitation of all learning interactions to the provided editing functionality prevents an easy way to realize such a scenario. Same is valid for Accordions, Timeline, Pyramid etc… interactions.
My recommendation is to use one of the multiple interaction slides from the Quick Start Projects (version 11.5, Assets panel). They do not offer Forced viewing out of the box, but can be transformed to do the trick. Have a look at the published example.
Warning: This blog contains three short video clips, it may some time to load completely on your system.
In this example I took 3 ready-to-go slides: one from the Safety, the Alliance and the Earth projects. The existing actions have been edited and you’ll get the Next button only when all tabs on a slide have been clicked:
The embedded example has a fixed resolution. You can also use this link for a scalable version.
All was done using two shared actions, which you’ll be able to download in a Library project:
If you want to try the workflow (described below) out, download this project which has the two shared actions in its Library. In an older blog (or video) I explained how to import those actions in any project using External Library. Download the project from this link:
Add the Next button to each slide, and hide it in output. I labeled them SB_Next_Earth; SB_Next_Safety, SB_Next_Alliance
You can watch this step in the video below as well.
Second step is also shown in this video clip:
You will need to repeat this third step for each of the tab buttons. Eventually you could also duplicate the advanced action for the first tab, and edit the duplicates. Do not forget to copy the commands from the original advanced action on the tab to the first decision 'Always' after the Increment command. In that scenario, only the first parameter (tracking variable) needs to be edited, but in the first AND the second decision. If you start from the shared action as template you need to define that parameter only once. However you don't need to edit the last decision, because the Next button will be the same for all the tab buttons if you work with duplicate advanced actions.
Here is the video clip for the third step:
Although this blog was meant in the first place to answer a forum question, I had a hidden agenda (a badass?):
Recently a user posted a request on the Adobe forums, asking for a Multiple Choice question to be used as Knowledge Check, but with possibility of multiple combinations of answers to be correct. Here is the link:
MCQ with more than one correct answer
I used some slides from the QSP Alliance to create quickly this example project. It has 3 MCQ slides which are using the same shared actions. For the answers I used placeholder text, so that you can recognize the 'correct' and 'wrong' answers. All questions have 6 possible answers but the workflow is not limited to that specific number of answers. The total number of correct and wrong answers is different on each slide, workflow is flexible enough to cope with those differences. Answer is considered to be correct when no wrong answers are selected and at least one correct answer is chosen. But multiple correct answers are allowed as well. It would be very easy to add scores to the MCQ slides. At this moment they are set up as Knowledge Check slides, with Infinite attempts. You cannot proceed to the next question before having posted a correct answer.
You can watch this project using this link for a scalable version, or the fixed resolution embedded version below:
Have a look at this Timeline screenshot of the most important objects on the MCQ slides:
From bottom to top you see
8 user variables are used:
The used events are:
This Reset advanced action is triggered On Enter for each MCQ slide, it is self-explanatory. I used an advanced action in this case, based on a shared action CreateVars, which I use all the time to create a bunch of variables.
This shared action is triggered by the Success events of the answer shape buttons which have the correct answers. Only two parameters are needed: the button itself and its tracking variable. As you may have read in my Tips about Parameters using numbers in the names makes the assignment of the parameters a lot easier:
Similar to the previous action, using the same two parameters:
As you may know both shared actions appear in the project Library, easy to check with Usage if they have been assigned correctly:
Due to the change state needed for this button, there is an individual advanced action for each Submit button:
A very simple advanced action for the On Enter slide event of the last slide, to hide the Next button and the multistate Message shape, both were set till the end of the project.
First 4 tips in this series were valid for both Advanced and Shared actions.
This blog is only for Shared actions, which are still not very popular amongst the Captivate developers. In my workshop at the Adobe eLearning World Conference I have demonstrated their power, even for unexpected uses. For each action I develop in my projects I always take a little time to reflect on this question 'Will this be useful as Shared action'? Result is that more than half of my actions end up to be Shared, not Advanced actions. My Libraries with useful shared actions are growing all the time, and have saved me already many hours of work.
In this article I will focus on tips for choosing Parameters to make the shared actions as flexible as possible. When saving an action as Shared action, you get a dialog box where compulsory and candidate parameters will appear:
Here is a screenshot of the dialog box for a toggle button. You'll see the compulsory and candidate parameters. Description for the compulsory parameters has not yet been typed:
Using several instances of one shared action to replace duplicate advanced actions leads normally to smoother projects, less risk of choking Captivate and even lower file size. However it is important to keep the number of parameters to assign on each instance not too high. Personally my goal is to have a maximum of 6-7 parameters. If you really need more of them, but appreciate the ease of transferring shared actions to new projects, remember that you can use each shared action as template for advanced actions. You can use that knowledge to create duplicate advanced actions if the number of parameters is too high. Labeling (see Tip 1) remains very important as well, because of the filtering (Tip 2) which is possible in the dropdown lists for parameters. You'll find some more tips below for the two types of parameters.
Depending on the action using those parameters, they are either very specific (only one type) or they can be flexible and cover more than one type. Examples:
Show/Hide actions: they can aim at lot of object types. All graphics (bitmap or SVG), video, but also audio objects (invisible objects which have audio attached), learning interactions, but also Groups! These are probably the most flexible actions, and you may consider to replace a multistate object approach by Show/Hide for that reason.
Change State: not so flexible, they need always two parameters which are the multistate object and the state. Whenever possible try to use
Go to Next State/Go to Previous State: you only need the multistate object as parameter
Assign: can be used with 0, 1 or 2 parameters. You need 0 parameters if using two variables which are not defined as parameters, 1 if you have a literal which is no parameter or one variable defined as parameter, 2 if you have both literals/variables defined as parameters.
Toggle: can only be used for Boolean variables, better choice than Assign because you have 0 or 1 parameter (the variable which could be defined as parameter).
Play Audio: needs an audio clip as parameter.
Apply Effect: only the object or group to which you want to apply the effect can be a parameter, not the effect itself. In most cases you'll want to use a custom effect to have the correct setup parameters.
If a variable in a shared action is not defined as a parameter, it will automatically be created when you import the shared action to a new project, including its Default value and description. One of the shared actions in my actions library is meant to avoid having to create much used variables in new projects. See this screenshot:
I also use that action as template for the many Reset actions needed On Enter for slides.
When you define a variable as parameter, this automatic creation will not happen!
Before defining a variable as parameter, you need to check if that variable is used multiple times in the action. Know that when assigning a variable to the parameter, it will replace that variable wherever it has been used in the action. I will try to explain by an example. If you ever created an advanced action for 'Forced View', where the appearance of a Next button is postponed until all clickable objects on the slide have been used at least once, this action for the first clickable object will look familiar:
In this project, the first clickable object is SV_Decision. That object has a custom state showing Info, and acts as a toggle button. On a second click the Normal state will re-appear. Its tracking variable is v_1, a Boolean, which will get the value 1 on each click. On the slide 4 of those buttons need to be clicked. For the three other buttons both the name of the button and the tracking variable need to be edited in a duplicate advanced action. The second decision checks the 4 tracking variables, shows the Next button if all have the value 1.
In this setup you cannot convert this action to a shared action. It would need 3 parameters: the Next button, the button itself and the tracking variable. But if you replace the first variable by the second variable, that will also happen in the second decision, thus leading to a non-functional second decision where only 3 variables are checked. Have a look at this action:
In this action 2 extra variables are used:
Be very careful with literals as parameters. My replacing it by a variable in the previous example gives you a possible workaround. Especially if you have multiple literals in an action, defining them as parameters can lead to issues. Look at this variant on the same situation described above:
It could be possible to define the value '4' in the last decision as a parameter, so that you can use the action for any number of clickable objects (alternative for the variable v_max). However, if you should define the '1' as parameter, changing it in an instance of a shared action would lead to changing it in 3 locations of the action!
My recommendation: avoid defining literals as parameters!
The Advanced Actions dialog box in its default setup for a new action, shows 3 decisions with the generic names 'Untitled-1', 'Untitled-2' and 'Untitled-3'.It is possible to replace the generic names of course. In this screenshot they are marked by a red rounded rectangle.
On top of the decisions to the left you see three buttons, which allow to Add decisions, Remove or Duplicate a decision. There is no real limit to the number of decisions within one advanced/shared action.
In the center above the decision names you find two buttons (blue rounded rectangle in screenshot above) which allow to change the sequence of the decisions by moving them to the right or to the left. That sequence is very important! First rule to remember when starting with Advanced/shared actions:
"All commands (actions) within an Advanced or Shared actions are always executed when the action is triggered. They are done always in the same sequence: top to bottom within a decision, left to right in the decision sequence."
This tip is based on my experiences with consultancy jobs and answering on the forums.
When starting to create advanced actions it often happens that too much commands are pushed into one conditional decision. I recommend to reflect: which of the commands (actions) have to be done independently of the condition? Those commands will appear in both THEN and ELSE sections. In that case, take them out and put them in a separate non-conditional decision.
Same recommendation when using multiple conditional decisions, if some commands appear in all of those conditions.
Example
This scenario appeared several times for debugging on the forums: 'Looping through a number of images with their text, and showing a Next button after the first loop'. The loop in this example is done with show/hide, not with a multistate object (which is easier however). Look at the original advanced action, meant for 3 images:
The second/third image and text are hidden in Output. The first image and text are visible. The result of this action is that the loop will not work, that each click on the button will always show the third image, while the counter will indeed loop and the Next button will appear as wanted. Reason is that the last conditional decision overrides the other decisions. Compare this with this solution:
In this action:
When you have multiple conditions decisions in sequence (remember the sequence rule), avoid using the ELSE parts. You'll have less possible problems when using only the THEN part and write a conditional decision for each possible situation. If you use the THEN parts, there is a big chance that a later decision will overrule what has been done in the previous ones.
Eventually it is possible to use an ELSE part, but only for the last decision. You need to double-check if that THEN part will not mess up with previous decisions.
Example:
Using the same situation as for the first tip, there is no way to use the ELSE part of the decision 'Second' to replace the decision 'Third'. The complete action would then look like this:
The result would be that the First decision would never be done, the second image/text never pops up and the Next button will appear after having viewed only the first and third image.
The first tip already showed how dangerous it is to change the value of a tracking variable within a conditional decision, if you have more than one of those decisions. In most cases it is safer to keep the value change in a non-conditional decision. You are probably aware of the three ways to attribute or change the value of a variable:
Here are two situations where you will need to have the variable value change within both parts of a conditional action (THEN and ELSE):
Such an action will often have only one conditional decision and uses a Boolean variable for tracking. Have a look at this script, which will show/hide an object:
Such a loop needs to have a way to stop looping. That is done with a tracking variable which needs to be changed within the actions which need repetition. Here is an example from a dice game. The dice number (random) is stored in a variable, and another variable stores the number of stairs which need to be climbed. The screenshots shows only the While decision of the action.