Why?
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
Example project
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:
Workflow Setup
Slide setup/Multistate objects
Have a look at this Timeline screenshot of the most important objects on the MCQ slides:
From bottom to top you see
- The 6 shapes (black) which are used as shape buttons, who will trigger either a CorrectAct or a WrongAct shared action. Their names start with SB. They have an extra custom state 'Checked' to indicate when they are chosen:
- The Submit button. Each slide has its Submit button. A custom 'Retry' was added to replace the Normal state for later attempts than the first attempt. The option 'Retain State on Slide Revisit remained unchecked.
- A multistate shape SS_Message which has an empty Normal state, two custom states (see screenshot). This object is timed for the rest of the project (and hidden on the End slide with its On Enter action). The option 'Retain State on Slide Revisit remained unchecked.
- The Next button SB_Next which is also timed for the rest of the project (and hidden on the End slide with its On Enter action).
Variables and events
8 user variables are used:
- Six tracking variables of the Boolean type, labeled v_1, v_2.....v_6 - one for each possible answer. Their default value is 0, will be toggled to 1 when that answer is chosen.
- Two counter variables v_correct and v_wrong which will track the Correct and Wrong answers which are checked.
The used events are:
- Enter slide event for each MCQ slide, for a reset action 'EnterAct'.
- Success event of the answer shape buttons SB_x to trigger either the 'CorrectAct' or the 'WrongAct', which are both shared actions.
- Success event of the Submit buttons to trigger a specific advanced action 'SubmitActx'.
- Enter slide event of the End slide to hide the messages shape SS_Message and the Next button. That Next button kept the default action 'Go to Next Slide'.
Actions
EnterAct
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.
CorrectAct (shared action)
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:
WrongAct (shared action)
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:
SubmitActx
Due to the change state needed for this button, there is an individual advanced action for each Submit button:
EnterEnd
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.