Eight years ago I wrote a blog post about ‘Secrets of cpQuizInfoAnswerChoice’. Of course the embedded published project was SWF at that moment. This specific quizzing variable is very useful when you need to evaluate the results of survey slides in order to make decisions. I created a new example file, partially based on slides from the Quick Start Project Alliance. It is part of a ‘decision tree’ which could be used for those who want/need to convert legacy projects to make them ready for publishing to HTML5.
Example file instructions
- If you have only the SWF output of the legacy project.
- If you have the cptx-file but cannot use it directly in the present Captivate version
- If you have the cptx file which can be opened in the present version.
To explore a new branch, please refresh the browser. There are more than 3 recommended workflows because of sub-branches.
You can watch the embedded movie below (fixed size) or use the link for a rescalable version.
Values of cpQuizInfoAnswerChoice
This system variable belongs to the category Quizzing. Typical for that category is that the variables are read only, you cannot edit them in Captivate directly.
It is a reused variable, gets a different value after the Submit process on each quiz slide. The value you are getting depends on:
- Type of question (see below)
- Numbering (if available) in the question. For several types you can choose between capital characters (A, B, ..), small characters (a, b, …), numbers or None. None will result in the same value as numbers (my preferred numbering)
In the example file I used three types of questions, which are very common in surveys:
True/False. For that type the value of cpQuizInfoAnswerChoice will be either a character or a number, depending on the chosen numbering type.
Example: if learner choses “True” value will be A, or a, or 1 (also for None as numbering)
MCQ with radiobuttons (one answer): value will be the character or number of the chosen answer. No problem when shuffling the answers. Although the numbering on runtime will be changed in that case, the original number, as seen in the editing environment, will be stored in the variable.
Example: Second slide in the example had three answers. You may shuffle the answers on runtime, but if the learner selected this answer, the value of cpQuizInfoAnswerChoice will be ‘1’.
MCQ with checkboxes (multiple answers possible): all chosen answers will be stored, using a separator (in my case a semicolon). If you use shuffling, the reported value will take the numbers originally assigned in the developing environment:
Example: first slide in the example file looked like this. With the shown selection, the value of the variable will be ‘2;3;4’ even if due to shuffling the numbering was different on runtime.
Short description of the other Question types:
Matching: the chosen corresponding numbers in the first column, with separator(s) will be reported similar to MCQ with multiple answers.
Example ‘A;C,B’ indicate that in the first column those were chosen to connect with A, B, C in the second column.
- Sequence: I couldn’t figure out what the meaning was of the reported value, very strange. Look like IDs (like Interaction IDs) separated by semicolumns. Maybe someone can explain?
- Fill-in-the-Blank: the text chosen for the blanks will appear, with separators.
- Short Answer: text entered by the learner.
Due to the fact that Captivate’s variables can store strings as well as numbers, if you choose for numbers you can perform calculations (Expression command). I used that feature in an old post about Graded Surveys. Tha particular technique has not been used in this example.
I will not explain every detail in this example file, just some tips about the used techniques.
Decision Tree – Branches
Before starting the development, I did sit down to see how many branches I would provide in this survey. The present example results in three main branches, ending up in three different end slides. Those are the slides surrounded by a red box in the screenshot of the Advanced Interaction panel (will blog about its use ASAP). The Survey slides are included in a blue box:
Example: The branch which will end on slide 12 (SWF_workflows), starts with a value=1 when the learner indicates that the output SWF is the only asset remaining from the legacy file. Based on answers to the other questions, this value can be incremented to 2 or 3. Each of them will lead to different content on slide 12.
The information on the end slides (12-14) is stored in multi-state containers. The On Enter action of each slide uses the tracking variable for that branch to show the appropriate state. Look at the screenshot of the action triggered On Enter for slide 12:
There are only two decisions (not 3) because the Normal state is valid for the situation where v_swf==1.
The result of the poll can navigate to slide 14, with the recommendation to start from scratch. However it is possible that legacy assets can be used: documented/branded theme, assets like graphics files (PS/AI), audio clips, video clips, GIFT or CSV files for questions. To show this information, user variables are inserted in the states on the slide. Their value is either empty, or has a value due to the choices on the very first survey slide. Look at this screenshot, which shows the Normal state (no external library available) for the Scratch slide:
Do you have questions? Please post them in a comment. Maybe we’ll meet at Washington DC, will try to help users struggling with conversion of their legacy projects due to the demise of the SWF player.
Question for you: any idea why a slide seems to be missing in the Advanced Interaction panel (slide 11)?