Widgets and Custom Questions - part 2


As promised, here is the second but not last part of my soap about using (free) widgets to create customized questions. One of the most versatile widgets for this goal is the TextArea widget, it will be the only 'star' today. Not only is it a very fine alternative for Text Entry Boxes because it allows for better formatting, text wrapping and if necessary the appearance of a vertical scroll bar, but it can be associated with a variable, which makes it accessible ...for advanced actions!

I will illustrate the use of the TextArea widget for Short Answer questions with a lot more scoring options than the default Short Answer question and for Fill-in-the-Blank questions.

In this blog post I will explain how to use this widget and its possibilities, In detail explanation of the advanced actions can be found in this article

Using TextArea widget for Custom Questions 

Example movie

Explore the TextArea widget by playing this movie. It has and intro-slide, 4 question slides and a score slide:
  1. Short answer question (roundtripping): score will be based on keywords, all keywords have to be in the answer to get the score.
  2. Short answer question (languages): partial scoring but also on keywords, each correct keyword adds to the score
  3. Short answer question (web apps): only one out of 2 keywords needed to get the score
  4. Fill-in-the-Blank question (twitter): with partial scoring, each correct word adds to the score

On the score slide you will be able either to Review the questions or to Retry all questions and increment your score.

TextArea widget

This widget can be associated with a user variable, but you will have to define that variable separately (Project, Variables), same way I described for the Radiobuttons and Checkboxes widgets in part 1 (Widgets and Custom Questions - part 1). The first image of the Gallery shows the properties of the widget used on the first question slide (about roundtripping), WidgetRound, . Those properties are easy to configure, and the user variable is v_roundtrip. When exploring this widget I was excited by the fact that this variable will store the complete text that is entered. This looked like a promise for multiple possibilities in Short Answer questions. I never used the default Short Answer question because the score can only be attributed if the Short Answer is totally correct! And this is rarely necessary as I heard as well from other users on the forum. Usually the short answer should get a score when it mentions some keywords, not when it is exactly the same as the "correct entry".

Tip: while exploring this widget I detected that it will only be functional if it has its place in the Z-order (stack order) on the timeline above all interactive objects. In the Gallery the second image shows the Timeline of the first question slide about roundtripping. On this slide ShortAn1 you'll see the stack order from bottom to top:
  • TitleSA1 = title of the slide (text caption)
  • Quest1 = question (text caption)
  • BtSubmitRT = button Submit (interactive)
  • BtContRT = button Continue (interactive)
  • WidgetRound = TextArea Widget
  • RTFeedback = text caption with Feedback (non interactive)
  • ScoreRT = text caption showing the score (non interactive)
  • RetryRT = text caption that will show up if the question is retaken (non interactive)

If you switch the place of the Widget with one of the buttons, it will not be functional! I had to put the three last captions on top of the widget because they are partially covering up the widget's text box when they appear. They do not interfere with the widget's functionality because they are not interactive.

Question slides - description 

1. Short answer - all keywords necessary

This question has a score of 5 points. This score will be attributed if the answer contains both the keywords Photoshop AND Soundbooth. Probably some users will also add Powerpoint, but this will not be taken into account for the score.  It is annoying that not only the names of user variables are case sensitive but also the values! I assumed that users could type both Soundbooth and soundbooth, Photoshop and photoshop to create the unique but complex condition for the Submit button. You can see the settings for the Widget and the objects on the timeline in the Gallery.
The Buttons Submit and Continue are timed, the Continue button will only appear after the Submit button has been clicked, same setup as described for the custom questions in Part 1.

2. Short answer- partial scoring

Up to 4 keywords can result in a score, each keyword adds 2 points, the max. score thus being 8 points.
Setup of the widget and the objects on the timeline are the same as for the first question. The big difference is of course the advanced conditional action attached to the Submit button. Here it is a combination of 4 different decisions, one for each keyword.

3. Short answer - one out of two keywords

Two possible correct keywords (Flash + Dreamweaver), but the user needs only to have one mentioned in his short answer. The situation is the same as for the first Short Answer, with one condition in the setting 'Any of the conditions true', but again taking into account the case sensitivity. Widget Properties and objects on the timeline are similar to the first question.

4. Fill-in-the-Blank - 3 fields with partial scoring

In the third image of the Gallery you will see the Timeline of this slide, that uses 3 instances of the TextArea Widget. Perhaps you wonder why I prefer TextArea to Text Entry boxes? The user input in a TEB has to be confirmed, either by  a Submit button or by a shortcut, which is not the case for TextArea. The user can change his input if he wants and the value of the associated user variable will be adapted in real time.
Possible issues: you'll have to try a little bit to have the right size and position for the widgets. I first typed the correct terms and positioned the widget on top of those, but had to adapt the position even with the same font/fontsize.
In this FIB you cannot give the user the possibility to choose from a dropdown list, only to type the answer.

Partial scoring is however possible, the advanced conditional action attached to the Submit button is rather similar to the one used for the second question (Short answer with partial scoring). Again you have to take into account the case sensitivity.

Results Slide

The results slide has the same setup as described in my first blog post about Widgets and custom questions. To allow the Review/Retry I used a user variable v_try that will have 3 possible values:
  • v_try = 0  is inital value, when the user takes the quiz for the first time
  • v_try = 1  when he retakes the quiz
  • v_try = 2  when he reviews the quiz

Those values will be used to re-initialize each question slide (see article).

One drawback of the used widget: it is not possible to reset the value of the variable to void/null/empty! You can reset the associated variable to a Null value, but this will not be reflected in the display of the TextArea on the slides. Once the user has entered something, it will stay there until he changes it himself. You can watch this with the Retry functionality in the sample SWF.

9 responses
@lilybiri, thank you so much for this solution!
<tr><td>Since you are keeping your own quiz variables, the results of this quiz cannot be reported to a standard LMS, or can they?  How do you handle this?


Reporting to a LMS is only possible for scores that will be incluced in the system variable cpQuizInfoPointsScored and this result will be compared with the cpQuizInfoTotalQuizPoints. The scored points can only be attached to default Question slides and to interactive objects, but the TextArea widget is not interactive, cannot have scores attached. The score can be attached to a button, a click box or a Text Entry Box. For the FIB-question replacing the TextArea widget by a normal TEB will allow to have the correct sore reported. For the Short Answer questions, 1 and 3 the score can be reported, by attaching it to the Continue button, and by having 2 Continue buttons: one with a score 0 that will be made visible if the answer is incorrect, one with the total score that will be made visible when the score is correct. That way reporting will be OK. I do not have a solution for the Short Answer 2 with the partial scoring, because all Quizzing variables are read only, it is not possible to have a variable score attached to an interactive object.
@lilybiri Awesome use of the Text Area widget! The thought never occurred to me that it could be used in this way. Nicely done! I've created a hybrid Text Area widget that will accept a user variable as the default text and I mentioned your article as well.
Keep up the great work!
Thanks, Jim! As I answered on your blog, it seems to me some Captivate Community Telepathy is starting to work: I wanted to beg you to extend the functionality of the TextArea widget in the way yoiu did. Hope you wouldn't mind me explaining this further in another blog post about the new possibilities?
Thanks for sharing your project.I think, It's a good project.
I need to create slides like your slide number 4 but I have no idea how to do it. I have captivate 7. it looks like for this I need to have programing skills, I would just like to write text and then mark the words I want to be "blanks" fillable. If this is a persistant problem why dont they make it user friendly?
In the first part of these blog posts about custom questions I explained the goal. I never use a programming language, so why do you point to 'programming skills'? Maybe you just need a Fill-in-the-Blank question, where you can mark words to be fillable? With these articles I tried to help advanced users by explaining use cases where advanced actions (and widgets) can offer more control than with default questions. Maybe those posts are not aimed at your level? Other users found them very useful, as you can see in the comments. And this is 'free', I'm not paid by Adobe, I'm not responsible for the development of Captivate. If you want to rant about Captivate, you should use another channel.
1 visitor upvoted this post.