Custom Hotspot questions in Captivate 8

Update

If you are using CP2019, version 11.5 where you can use SVGs as buttons, with possible limitation of the clickable area to the image itself instead of the bounding box, have a look at this updated version of a custom hotspot question:

SVGs for Hotspot question

Intro

A couple of weeks ago I presented a session 'Enhance Effectiveness of Quizzes in Captivate 8' at DevLearn 2014. One of the subjects that I barely was able to tackle due to lack of time, is the creation of custom questions. You'll find several blog posts where I created custom questions using standard objects, widgets and learning interactions. On the forums I often suggest to replace the default hotspot questions by custom questions. And finally find the time to explain why I recommend this. The success of the Quiz blog posts and of this BYOL session at DevLearn make me wondering if an e-book with focus on Quizzing would be welcomed by the community? Looking for comments on that plan.

Why?

The default hotspot question slide has some limitations. Here are the ones I find most frustrating:
  • hotspots are always rectangular
  • it is not possible to have partial scoring
  • you cannot add shape buttons to that type of slide, because any space outside of the correct hotspots causes failure
Thanks to my favourite Captivate object, the shape button, it is pretty easy to create a scored custom hotspot question with
  • freeform hotspots
  • partial scoring, that can be reported to a LMS by SCORM
  • allowing to add shape buttons for more functionality

Why not?

What are the disadvantages of a custom hotspot question slide compared with the default hotspot question slide;
  • custom question slides always take more time (although shared actions can help), especially if you want to add all question functionality (Clear, Retake etc...)
  • if you like the animations that appear on clicked hotspots, they are not added automatically in custom hotspots, there is of course a way of showing the clicked hotspots
  • although the total score will be correct when using partial scoring, some quizzing system vars will consider each correct hotspot as being a separate question; you have to be careful when using a default score slide, in which you show number of questions/correct questions
  • it is not possible to use custom questions in a question pool

Example

Watch this movie. After the intro slide you'll see two Hotspot questions. Both questions have partial scoring. The fourth slide is the default score slide, to show how each correct hotspot is considered to be a question as is the case with all scored objects. To remediate, I added a custom score slide as last slide (use Continue button on the 4th slide). I didn't create a Reset or Retake situation. If you want to replay, refresh the browser window. Good luck!

Concept Hotspot Question - version 1

This question slide has one big shape button behind four shape buttons that indicate the form of the four countries to be clicked. The big shape button when clicked, will track a wrong click. I used 3 variables for this question:
  • v_attempt: number allowed attempts; will be reused for second question, number is assigned by On Enter action
  • v_counter: counts the clicks, to be compared with v_attempt;  will be reused for second question, reset to 0 by On Enter action
  • v_wrong: counts the mistakes, is not reset because it will continue to increment on second question, is used on custom score slide.
Here you see the timeline of this slide. The correct hotspots, shape buttons, have been duplicated to create the covers that are normal shapes with a texture fill. 

For the incorrect hotspot (shape button) I created a conditional advanced action with two decisions:
  1. "Always" is a mimicked standard action, self-explanatory. Because this hotspot can be clicked multiple times, the last statement is necessary to place the playhead one frame back, in the active portion of the shape button.

  2. "ShowNext" checks if the number of allowed attempts is reached, and if that is the case will hide all the hotspots and shows the Next button.

For the correct hotspots, that allow only one click, I created a shared action with two decisions

  1. "Always" is a mimicked standard action, self-explanatory. The parameters are highlighted.

  2. "Checker" is similar to the second decision for the incorrect hotspot. Parameters are highlighted.

The On Enter action for this slide is a standard shared action that resets the value of v_counter and v_wrong to 0 and assigns a value to v_attempt.


Concept Hotspot Question - version 2

I will not explain this question as extensively as version 1 (maybe in a planned book about Quizzes). It has multiple incorrect hotspots, and uses an extra variable v_scorehot. Try to figure it out. As a tip, this was my timeline:

Comments?

As always I welcome comments about this example. As mentioned in the Intro, I would also like to know if you'd appreciate a book explaining the design, the tweaking possibilities and custom questions for Captivate quizzing.
38 responses
Please start writing your ebook! You have enough knowledge to share in 10 ebooks, and that's only about Captivate. So, Lieve, pls start writing.
brilliant post Lieve Agree with Vico, i haven't found a book that comes close to blog for knowledge on Captivate. Its the examples you provide that really help to transfer the learning to my own projects. Thank you
I would be interested in an eBook about custom question slides -- providing that it included a start file and a finished file for each exercise, and precise step-by-step instructions with no guessing about what to do.
Thanks all for support. @Jay I planned cookbooks for advanced actions, those are with step-by-step instructions, but since there is a big book around, abandoned that project. This book would be about quizzing: explaining the design of the default question/score slides, how to tweak them, how to include drag&drop questions, how to create custom questions. As a former teacher I dislike just giving recipes without explaining why. It is about learning, not about just copying.
You are the best Lieve. I enjoy your instructions and everything you put together. You are my Hero. Thank you so much for having this blog and sharing your knowledge.
Yes Lieve, please write the book! Your first variation is a much better setup of something I've played with that requires multiple hotspots, but with only the first one "active" to begin with. The others get turned on (and previous hotspots "off") in sequence as each correct click is made. My challenge has been setting that up in a quiz. Now I have a method! Thanks so much.
Hi Lieve, I am currently completing an ASTD eLearning Instructional design course and from all the books I have read and opinions I have heard I can assure you that Feedback and Quizzing is maybe the most important part together with Motivating people to learn. Tweaking a quiz or test is absolutely essential if one is to learn something in a more engaging way. By the way, what is the book you are refering to as a "big book"? Thank you B
Was busy setting up several e-books for advanced/shared actions, my true specialty when someone published a book about that subject. I didn't think there was room for more, bit frustrated because I know my blog is mentioned (didn't agree to that) in the book. I knew from the popularity of the quizzing articles that it is a hot topic. And as you can see, advanced/shared actions are necessary to achieve real tweaking.
I agree that the explanations about "why" are essential and definitely should be included. That is a must. However, I often get lost half way through an explanation when there is not enough detail. Perhaps for the most advanced users, the detail isn't needed, but for myself, I learn best when I don't have to guess. Once I understand a technique I can be creative (without copying). I have no desire to copy, just to understand. I look forward to your book on customizing quiz questions. I hope that the explanations will be geared to intermediate users like myself who need sufficient step-by-step instructions.
Sorry, Jay, this is a free tutorial and I got already several positive comments. Your comment is not encouraging at all to continue with the book, since you just tell me that I'm not explaining enough.
Wonderful Lieve. Thank you for taking the time to explore this and offer such a thorough explanation. Many Designers will be thanking you for taking this on. Best Wishes
Thanks Brian for your support. What a contrast with Jay's comment, he tells that my explanation is not enough step-by step.
Lieve, I do appreciate your blog. All I'm saying is that it's not step-by-step enough for ME personally. Even though I have a little experience with advanced actions, I still struggle with them. I'm trying to become more proficient, but the way of thinking involved with advanced actions does not come naturally to me.
Thanks Jay, but your comment was discouraging to me. I'm offering everything for free, in a small Captivate world where a lot of bad training is happening everywhere. You'll not find explanations like this in any offered training, whatever you pay.
Lieve, i'm a few months late getting to read this - but this is a great post! Your blog is a "must read" for anyone wanting to do more than the basics with Captivate. Thank you! I really love these Hotspot questions. Do you know if/how it would work in CP's HTML5 output?
Nate, thanks for your comment. I tested for HTML5 output, where it works fine. I did not test for responsive projects.
Thanks Lieve, and thank you for responding so quickly. One other question if you'll indulge me. i'm very intrigued on the set up of your Wrong_Hotspot - Always tab, that has the Expression. For a while, I've always been under the assumption that the cpCmndGotoFrame, cpCmndGotoFrameAndResume, and cpInfoCurrentFrame system variables didn't translate over to the HTML5 output since there are no actual frames - since its not a .swf. I've recently been working on some custom movie controls, and had wanted to use a similar set up of that Expression, but have been unable to get it to work in the HTML5 output. Were you able to find a workaround for this to get it to work?
Hi Lieve, in the first example, when the user clicks on the dolphin shape, the shapes changes colour. I am wanting to do this with a standard hotspot question. When the user clicks on the highest number in a series a highlight shows around the number no matter where they clicked on the area. At the moment the SWFs centre from where they have clicked so it doesn't sit evenly over the number. Do you know if there is any way to do this or is it only through using a custom hotspot question slide?
@Jo If it were possible with default hotspot question, I probably would already have written an article. Default Hotspot and Short Answer questions are too limited, I almost never use them. Using Shape buttons for the hotspots makes it quite easy to report scores, and once you get the hang of it, not that hard to create.
Thank you for that. Do you know if your custom hotspots work in question pools?
@Jo No, only the default question slides can be in a question pool. None of the interactive objects can be included, which is a pity.
Hi Lieve, This is an elegant solution to the partial scoring limitation of the default, and gives you much more freedom. Thanks. One question relating to the partial scoring with a reset. I've taken a similar approach to this in a project but my 'correct' buttons have the "Include in quiz" reporting button as I will be using some default MCQ slides later and want everything to tot up. My reset function resets the attempt status and clears all indication of a selection being made. My issue is that, if I go through and select the right answers then reset, if I submit the reset slide CP still records the correct responses as having been selected. I remember reading somewhere that quiz variables are read only, so do you have any suggestions getting around this?
@Dan Quizzing system variables are indeed read-only. Only the Retake button on the score slide can reset scores for those system variables. Workaround should be possible with JS for partial scoring.
Great, thanks for the speedy response. I'll have a think about how JS can be applied, but my knowledge of how it and CP work together is rather limited. I experimented with it in CP5 and all I could manage was some random pooling for scenario flows, prior to the introduction of the 'Branch aware' option. Incidentally, I think that it's a possible solution for one of the limitations you've listed above. Although strictly not a pool, you could use a conditional advanced action on entry to generate a random number and assign to a var, then have logical operators evaluate it and show different buttons with different actions. Branching should then take place so you shouldn't have to worry about logic to handle different score totals. I'm going to give my 'pooling' a shot if I can figure out the reset part of my problem, and I'll try and get an update on here in case it is useful for anyone else.
What about having a static value in shared actions is that possible or do I always need to renter values? For example my shared action needs to always hide the same group of images but needs to show one different image everytime its used, how would I go about making my shared action define hide group without me having to always select that group from the combobox?
Another feature request I logged, but didn't make it yet for Captivate 9. Only literals and variables are 'free' parameters, you can choose if they become parameters or not. That is not the case for objects, groups. If you could help supporting this request by logging it as well?
Thank you!! s it possible to download the CP of this example?
Sorry, but the answer is No. I offer free tutorials on this blog, but as a consultant you have to understand that I cannot offer free files as well.
thanks Lieve, can you please describe how to pass the value of the hotspot to the last result's page and to a LMS ?
If you do not allow multiple attempts, the score attached to the shape button s can be included in the Quiz total. That means that it will be included in all system quiz variables, also the ones that show up on the score slide and are transferred to a LMS.
thanks Lieve, if i assign for example the var. "w_attempts" with the system variable "cpQuizInfoAttempts", how can i display this on the Quiz Results slide? i tried with a textentry box without results. What is wrong with that ?where do i assign system variables to objects to display on quiz result page? thanks!!
You are confusing attempts on question level, which has no system variable, and attempts on Quiz level, which is stored in cpQuizInfoAttempts. Only that variable is displayed on the score slide. Quizzing system variables are read only. You should read some more articles that I wrote about quizzing and system variables.
This looks promising for what I need. Thanks so much! I feel bad I don't remember my geography better though...lol
You're welcome!
4 visitors upvoted this post.