Step by step workflow to show a shape (filled with any content) during Review, for random questions.
Why?
Another showcase to answer a user question on the Adobe forums: ‘How can I show custom feedback (image) during Review for random questions?’. For normal quiz slides this is easy: use the On Enter event to trigger a conditional action. The action should check the value of the Boolean variable cpInReviewMode and show a hidden object when the value is 1. However for random questions extracted from a question pool the situation is a lot more complicated. You can use the On Enter event in the pool for each question, but it is impossible to point to an object, using its name, which is in the quiz slide. A while ago I wrote an article about what you cannot do with random questions, offering some workarounds. Have a look at:
Random Questions: Do’s and Don’ts
After some reflection and testing, I was able to find a possible workflow.
Example
No focus on design in this example. I used the Windswept theme, and the ‘feedback’ is just a shape, which can be filled with image, text, or whatever you want. In this case the shape is fllled with a number, which corresponds to the number of the question in the question pool. That is the key of this solution.
Workflow
I created a question pool (from the example CSV file) with 7 questions, and inserted 4 random slides.
1. Multistate object
On the slide before the first quiz slide (here the Title slide) insert a multistate shape, labeled Multi (or any name you want) which has as many states as you have questions in the pool + the Normal state. That Normal state needs to be invisible, by setting Alpha for Fill to 0, and stroke width to 0. The other states have the content you want to show for that question on review (here only the numbers).
Time that object for the Rest of the Project, Always on top.
Why you need it to put it before the first random slide?
You may know that all embedded objects on quiz slides are on top of the stack.
To circumvent this, use the trick used here: physically before the quiz slide, timed for the rest of the project
Shared Action PoolAct
Create this simple conditional action, which you convert into a Shared action, having two parameters: the name of the multistate object, and the name of the state you want to show. This means that you can use any name for object and states when setting up that object.
You have to apply this shared action to all the questions in the pool, using the On enter event which is available. Contrary to object on the quiz slide, which cannot be pointed at in an advanced action, you can point to an object (Multi) which is IN the course. Because that object is not on the same slide, a simple action cannot be used. Only advanced/shared actions have the ‘power’ to change states for objects on other slides than the present slide.
The first parameter will always be the same (Multi in this case).
The second parameter has to correspond with the number of the slide in the pool.
Here is an example of definition of the parameters, in this case for question 5. The dialog box with parameters has to be opened with P button
Not only can you use other names when using a shared action instead of duplicate advanced actions, you can double-check in the Library if you have assigned all. Look carefully at the screenshot of the Usage box:
You see that the last instance assigned to the On Enter event was for Slide 5. Normally I had used the action in the normal sequence of the slides. But when I double-checked the Usage, only 6 instances had been used, and slide 5 still had an older version of the action. Such an easy way of checking can save you a lot of time, and is one of the reasons I prefer shared actions. The old actions, when no instances are used, can be deleted. Compare that with finding an advanced action which is not used to delete it?
Test
You are ready for testing… not so tough this use case!
You must be logged in to post a comment.