Branch Aware Quiz

Intro

A recent question on the forum (Duplicate Quizzing) and my plan to write an e-book dedicated to Captivate Quizzes is the reason for this post. Forum user wanted small quizzes in different languages in the same Captivate file. If the trainee chooses for a language, He should be scored only for that language. I explained that 'Branch aware', feature added to Captivate with version 6, was the way to go. Help documentation however is pretty concise: exactly 91 words.  I wanted to explore this feature more in depth, and see how to create the best experience in each language, which is not that intuitive as you'll discover. It is more the localisation of Quiz/Score slides that is cumbersome.

Example movie

Play this movie to see the result. After the title slide, you'll have to choose one out of three languages, or all the questions. There are three questions (same) in each language, totalling 9 questions. The score slide is not totally localized as you'll see. Each question has one attempt on question level. I provided two attempts on quiz level. You'll be able to Retake the quiz once, and to Review. Backwards navigation is not possible. Branch aware setting automatically disables navigation (no playbar). Watch the progress indicator, which I edited to 'X/Y'. Refresh your browser window if you want to replay the movie. 

On the question slides a text caption with 4 system quizzing variables is inserted:
  1. cpQuizInfoPointsscored: score obtained by user until now
  2. cpQuizInfoTotalQuizPoints: maximum score if all questions have been taken; this can be found in the Advanced Interaction panel (F9)
  3. cpQuizInfoTotalCorrectAnswers: number of correct answers until now
  4. cpQuizInfoTotalQuestionsPerProject: total number of questions in the Quiz, also to be found in the Advanced Interaction panel (F9)

Quiz Setup

Quiz Preferences

In the screenshot  you see that:
  • 'Branch aware' is checked
  • 'Allow Backwards movement' is unchecked
  • 'Show score at end of Quiz' is checked
  • 'Allow user to review the quiz' is checked
  • 'Hide Playbar in Quiz' is checked
In Pass/Fail I allowed two attempts, and show the Retake button. Since the score slide is the last slide of the project, I didn't specify any actions on Quiz level, both are left to 'Continue', which means going to the End slide. The progress indicator was changed like this to make it universal, because you cannot localize it in this specific situation, it needs to be the same in all question slides. I changed it in Quiz, Preferences, Default Labels:
In the movie you saw that this indicator doesn't appear as configured, probably because the factor Y, total number of slides, is unknown at the start of the quiz. 

Object Styles/Master slides

The feedback captions are replaced by shapes (rounded rectangles) and I edited the colors with the Theme Colors used in this custom theme. 

For each language I created Quiz master slides (for the used question types) to localize the buttons. As usual I dragged the Next button (invisible here) under the Clear button ('Wissen' in Dutch). I didn't bother about the Back button because I accepted to delete those Back buttons when unchecking 'Allow Backwards movement'. 

Localization remains a cumbersome work flow: you cannot translate the content of the feedback containers on the master slide, this has to be done on the slides.

It had no sense to localize the Score master slide, because each Captivate file allows only one Score slide. Read later on why I didn't drag the Review under the Retake button, which is my normal work flow for Score slides.

Branching

Dashboard to Quiz

I created a user variable v_lang that will remember the choice of the user. For its values you can use numbers, one character (my choice: 'D' for Dutch, 'F' for French, 'E' for English) or a word. This variable is populated on the dashboard slide (slide 2) with the stars. Each star is a shape button, triggering a shared standard action. In these two pictures you see screenshots of the template and of the parameters, both filled in for the Dutch button star. Statements are self-explanatory: assigning a value to v_lang, disabling all buttons, applying an effect to non-chosen buttons and showing the right text.

If the user prefers to take all questions, by clicking on the CP-button, the value of v_lang remains empty. To make it possible to check for an empty value, I needed a second user variable v_null as explained in this post: Where is Null

The CP-button on the slide controls the navigation with a conditional advanced action that has 4 decisions. First decision 'Empty' checks if v_lang is empty, the three other decisions check which language was chosen (values D, E or F). 

Quiz to Score slide

Last slide of each group of questions needs a conditional navigation because of the branching. On Exit event for question slides is not available, the action has to be triggered both by the Success and Last Attempt event in the Quiz Properties, Actions part.

Because this action EndQuiz has never to be edited, I preferred a conditional advanced over a shared action:

Score slide

What is different?

If you watch the system variables displayed in the movie, and compare them with the numbers on the Score slide, you see that they only match if all questions are taken. When only one branch has been done, you see a difference for:
  • Maximum score (cpQuizInfoTotalQuizPoints), which is used to calculate the percentage as well; it contains always the total number of questions, but the results slide shows only the maximum score for the questions in the Branch taken by the user.

  • Number of questions (cpQuizInfoTotalQuestionsPerProject) also contains the total number of questions, but on the results slide you'll see the number of questions in the Branch taken.
Consequence is that you will not be able to create a custom score slide (see: Intermediate score slides)  when Branch aware is checked.

I discovered another difference in the behavior of the Retake button. For a non-branching quiz, the Retake button will disappear automatically in two situations: when the Quiz attempts are exhausted or when the user passes the quiz. If you check Branch Aware, the Retake button does not disappear when the user passes, only when the Quiz Attempts are exhausted. Bit strange. To avoid confusion between the Review and the Retake button I use to drag the Review button under the Retake button. This prevents the user to Review a Quiz before having succeeded or finished the Quiz attempts. That work flow proves impossible with Branch aware checked. For that reason I had to show both Review and Retake buttons, and add a warning in the custom Feedback. I dragged the Retake button over the Continue button, because that button also can lead to confusion and should never be deleted. 

Localization

That was the toughest part. Only one default score slide is allowed in any Captivate project, the numbers shown in that score slide cannot be retrieved for use in custom score slides. 
Each field on the score slide has a 'label' and a 'number' part, they are linked. You can format them separately, but you cannot delete the label and keep the number result.
I had to cheat, because the labels needed localization, and I decided to change the color of the default labels to the same color as the background of the slide (luckily a solid one-color fill), to make them invisible. Then I made them small and dragged them to a corner of the slide. 

That way I was able to add custom labels, which are grouped in the Timeline; each group (Gr_Dutch,....) also includes a localized title:

The feedback on the score slide appears normally in the Review Area. It is possible to drag that area off stage. I created 8 feedback shapes and grouped them in Gr_Review. The appropriate feedback will appear due to another conditional advanced action triggered by the On Enter event of the Score slide. This action has 8 decisions, you see first 3 decisions in this screenshot; the other decisions are similar:

The buttons are not localised, and I didn't create trilingual labels for the users that took all questions. It would be possible for the buttons, when splitting them up in a button and an overlay text, but I always get tired when having to localize Quizzes, sorry for that.

Conclusion

Branch aware is a great feature (if you don't have to localize). I hope you discovered with me how to set it up, and where you have to be careful. Maybe the localization tips are overkill for the lucky Captivate users who never have to create a project in another language than Captivate's language :)

And for the fans, between the lines you could discover a tip about choosing between shared and advanced actions as well. Hope you discovered that tip?

Theme Colors

Intro

In my previous post I explained the work flow to create a custom Theme Colors palette, starting from an Adobe Color palette (ase). Theme Colors palettes can be applied to any theme, they are stored in the Layouts folder of the Public documents, they are not project specific. This article will show the consequences of applying a new Theme Colors palette to a theme. As you probably know a theme has three principal components: object styles, master slides and skin. 

Moreover Captivate 8.0.1 allows to apply theme colors to a bunch of learning interactions (not to all yet). That is a big improvement, because most of those interactions have their own themes and it was a lot of work in former versions to edit colors in the interactions to match the theme of the project. 


How are Theme colors used?

You can customize one of the existing themes by changing the Theme colors in the first place, then adding objects, changing styles, master slides etc. For a totally new theme you will probably start with the Blank theme. Maybe in a third article I will offer some tips about using Blank theme. In this post I will only talk about the other themes, and the way a new colors palette will interact with them.
In the dropdown list under Select Theme Colors, you'll see on top the category 'Custom Theme Colors' and to the bottom 'Pretest Theme Colors'. 

For each included theme you'll find two Theme color palettes in Captivate 8: one with the same name as the theme (in 'Preset Theme Colors'), and one with that name followed by Shade (in 'Custom Theme Colors'). Example: Flat color palette, and Flat Shade color palette. Only the Blank theme is an exception. 

When you open the Theme Colors window, and choose Customize for a palette, you'll see 10 colors. A name has been given to each color, but those names are misleading, as I will explain. 
I prefer to label them color 1-10. Why? What do you expect when seeing a name like 'Title', 'Sub-Title', 'Slide BG', 'Fill', Stroke? I naively (or is it my engineer's mind) supposed that the first color (Title) would be applied to the Titles on the Master slides, the second color (Sub-Title) to the subtitles on master slides, Fill and Stroke to shapes or other objects, Slide BG to the background of the slides (project background). But when I explored the themes, included with Captivate, I discovered that this is almost never the case :). If you download this file, you'll see two tables: one for text styles and one for the three states of Shapes. Some conclusions:
  1. Font color of the default Title Smart Shape Style which is used on the Master slides is the first color 'Title' in themes Flat, Green, Nimble, White and Woodgrain. Blackboard uses Text 2 (Color 4), Clean Blue, Clouds and Vivid use Skin 2 (Color 9), Half Tone uses Stroke (Color 6). 

  2. Font color of the default Sub-Title Smart Shape Style, also used on Master slides is never color 2 'Sub-Title' except for the Flat theme. All other themes use another color.

  3. Font color of Caption text uses quite a myriad of colors: Stroke (color 6), Text 1 (color 3), Sub-Title, Sub-Title tint 5 (color 2 - see tints later on), Title (color 1), Skin 2 (color 9).

  4. Same for the three font styles on Question slides: Title, Question and Answer.

The default Shape style in the Object Style Manager has three states (Normal, Down and Rollover) because every shape can be used as a button. In the second table you'll see Stroke color, Font color, Fill color (Solid or Gradient, and Alpha) for the three states. Only the Font color seems to remain the same for each state - not always a good choice (sometimes unreadable because of change in fill). 

Why did I create those tables? If you change the theme colors, some of the object styles, master slides and skin will change based on the new colors and on setup of the colors in the original palette. This means that the same custom color palette will create a different look, depending on the theme for which it is used.  Not all object styles are using theme colors however, some will not change color: this is the case for the new Success/Failure/Hint smart shapes that you can use to replace the captions for interactive objects and question slides (Preferences). Of course, the old Success/Failure/Hint captions cannot apply theme colors neither, but for the shapes this is possible without having to create custom captions in a graphics editor. 

Example

I created the color palette  'Lilybiri' based on my logo (see previous post). Browse this Picture Gallery. You'll see one slide, with that palette applied to the White, Vivid, Flat and Halftone Themes. Watch the colors of the master slides, Title, Subtitle, Caption and the 'rollover' state of an inserted shape button. You see that the result is totally different.

If you want to change just the theme colors for an existing theme you have to check the master slides and the object styles. I would have preferred to have more consistency in the use of the theme colors in the themes. Especially in this version, because to create a custom theme you need to start from an existing theme, certainly for responsive projects. 

Tints 

In the first article I already explained that Captivate will create 5 tints for each of the theme colors, besides the base colors of the palette. Some of those tints are used in the existing themes: on master slides, in object styles and in the skin.
Contrary to the base theme colors, which I indicate now with codes 1.0, 2.0 .... 10.0, you do not have any control over the way those tints are created. I use code 1.1, 1.2 ... 1.5 for the tints based on color 1.0 in my code system. If you apply a custom theme colors palette, Captivate will create those tints, but my curious mind wondered "HOW"? Because the term 'tint' was used, I suspected that looking at the HSB code would be a better idea than the provided Hexadecimal or RGB codes. HSB is used in a lot of Adobe applications to indicate Hue, Saturation and Brightness. I have now a complete table with HSB-codes for all provided theme color palettes. I didn't include it here, it was meant to discover the logic of the tints creation. And there is some consistency, my conclusions (see also the image below):
  1. For gray colors (like 4D4D4D, E6E6E6...) you'll see that Hue and Saturation remain equal to 0 and only the Brightness will decrease from tint 1 to 5.  Same of course for Black (000000) and White (FFFFFF).

  2. For normal colors the Hue remains constant (there are small variations) for all tints.

  3. First tints (1-3 or 1-4) keep high Brightness but start with lower Saturation that will increase

  4. Last tints (4-5 or 5) keep Saturation of previous tints but decrease the Brightness

Depending on the default Theme you are using, the tints can be slightly different, but not in the same way as what I showed about the style colors in the previous point.


Learning Interactions - Theme Colors

Some learning interactions do have their proper themes. Now it is possible to apply the colors of the active Theme Colors palette to the interactions as well. However, they are not applied automatically, you need to use the Custom button. There are two possible work flows:

For the (older) interactions Accordion, Tabs, Process Circle, Pyramid Stack, Timeline, Circle Matrix, Pyramid Matrix, Glossary, Word Search and Certificate

  • The interaction themes are at the left, with default theme selected; use the Custom button at the bottom

  • Default Colors are activated, and you could customize them using the Customize button, but then you'll see the old cold dialog box, which has no link to your theme colors

  • Click on Theme colors: the preview will be changed immediately, and the Customize button now appears under Theme Colors

  • When using this customize button, you'll see the Theme colors with their tints when changing a color.

For the new games Catch AlphaNum, Jeopardy, Memory and Millionaire

  • After setting up the game, go to the second screen (mostly with an red arrow at bottom right) to Customize

  • Look for the button 'Color settings': in some games it is at the top, in other (like in the screenshot) at the bottom

  • Same work flow there: if you click on Theme colors the present color palette will be applied

  • Customize becomes available under Theme colors instead of Default colors and will show you the Theme colors palette with all the tints.

The other interactions do not yet offer the possibility to use theme colors.

Tips

  • Be careful when creating a custom color palette to apply to an existing theme: look at the two default palettes provided for that theme and try to assign bright colors to the same color number as those palettes, same for darker colors. Maybe the table I offered with the use of the theme colors in all themes can help.
     
  • Check the object styles after applying the new color palette, the easiest way is in the Object Style Manager; do not forget that shapes have colors for the three states

  • After checking the object styles, check the master slides: objects and background will have changed colors as well. If you use shapes for Success/Failure/Hint messages, check their style because they will not be changed to the new color palette.

  • I didn't mention the skin, but playbar as well as TOC settings will also get color changes when applying a new color palette, check them as well

  • When using learning interactions, try to change to Theme Colors if they offer that possibility, and double-check the result that you can edit with the Customize button.





Colorful 2015 with Adobe Captivate

Intro

Color management in Adobe Captivate is improving slowly but steadily. Too bad: the Help documentation is not offering much explanation about color workflows at all. Have a look at what is explained about enhancements in Captivate 8.0.0 and 8.0.1 and tell me if this is sufficient? It is not for me, and I have a 25 years history as a Photoshop trainer. Do you know about the relationship between the Swatches panel, the Color schemes that appear in a lot of dialog boxes (not only for Fill/Stroke, but also in learning interactions), the Theme colors and the colors applied by default in the Object Style Manager, Master slides and Skin? Since many months I'm trying to figure out a good practice using the enhancements in Captivate 8. In previous versions I created color swatches in the scratch area (outside of the stage) to use with the color picker in order to achieve a consistent color use. That is at the least cumbersome compared with color management in applications like Photoshop and Illustrator.  Since October 2014 for those CC applications I'm able to create and use my Adobe Color palettes (ase), stored in the cloud, on any device and system. Adobe Color is installed on my tablets and smartphone, allowing to create color themes at any moment, often from a shapshot. That new sharing feature (Libraries) is not available (yet?) for Adobe Captivate. 

In this first article I will try to find a way in the jungle of Captivate's color terminology and explain my present work flow to manage colors in a project by creating a custom theme color palette, starting with an 'ase' file created in Adobe Color. Let me know if you find this useful, please? In a second article focus will be on the use of Theme colors:  in object styles, master slides, skins and how to use them in (some) learning interactions (new in Captivate 8).

Swatch Manager

In the help you'll find a lot of screenshots where it is labeled 'Swatches'. But in CP8 title was changed to 'Swatch Manager'. I'm working in Expert UI, and have that panel always available in the right docking station, and make it floating when necessary. If you prefer the default newbie UI, there is a video in the Help that explains how you can open this panel: http://helpx.adobe.com/captivate/using/whats-new.html

You'll see a pretty big color palette in the manager: 8 rows with 15 color/tints, starting with 12 gray tints. When you hover over a color you'll see its Hexadecimal code, top left. To see RGB or HSB codes of the existing colors is a lot more complicated. When a color is selected and you click on the color wheel on top, it is not the selected color that shows up (as I expected) but always the gray color #404040. There is no direct way to see other color codes of the swatches (like HSB, RGB), contrary to the Color Dialog box, that will show you the hexadecimal code and RGB (not HSB) when selecting a color and clicking on the Color Wheel.

If an object is selected on the stage, you can use this Swatch Manager to apply one of the swatches as Fill or as Stroke color. For a text container (shape or caption),  in text editing mode, you can use it to apply a swatch as Text or Highlight (background color behind text) color. That is the goal of the radio buttons in the third row. Honestly, I never use that work flow, if you accidentally choose the wrong radio button, you'll change the Fill instead of the Stroke color. 

The color picker and the color wheel (that will show HSB, RGB and hexadecimal code) on top (first row) are meant to add individual swatches. You will be asked to give a name to a new swatch, the default swatches have no names.

TIP  

When you customize the palette in the Swatch Manager, it becomes available for all open projects, it is not project specific. BUT!!! A big problem is that you cannot save the swatches with a project at all. Whenever you reopen the project, the default swatches palette will appear. Even when you put a PC in Sleep mode, after wake up the custom swatches palette has disappeared and you have to load it again. This is the main reason why I never use the Swatches Manager to edit colors in a project as I mentioned before, but use it only to define a Theme Colors palette. 

The buttons in the second row are the most interesting!


Captivate and Adobe Color

I am using the Swatch manager to create a custom color palette, starting with an Adobe Color scheme. The buttons at the second row, from right to left, are:

  • Clear: this will delete all color swatches in the panel - not really necessary if you use Load

  • Reset: will revert to the original 8x15 palette, any added individual swatch, or loaded custom palette will be cleared

  • Save: the present palette will be saved in the Adobe Color format, extension 'ase' (Adobe Swatch Exchange). The default name will be the project name (you can change the name of course); this can be useful if you created a custom color palette in Captivate, for import into another Adobe applications like Photoshop.

  • Load: allows you to load an 'ase' file created in another Adobe application like Adobe Color. Captivate also accepts 'aco' (Adobe Color, have more information like Pantone color) files but I seldom use that palette format. You get a warning that the existing palette will be replaced by the new, but can still revert to the last option:

  • Append: will add color palette described by an ase or aco file to the existing colors.
An Adobe Color ase file will typically have only 5 colors. There are a lot of tutorials around about using Adobe Color (formerly Kuler) and you can install it for free on any device or use it right from the web site. Just an example: you can create a color scheme from a logo in a quick way. The color scheme imported here into the Swatch Manager is based on my company's logo.
Adobe Color is part of the Creative Cloud,with a CC subscription you'll have access to your personal color themes in the cloud from a lot of Adobe applications without having to save/load it using the ase file. Crossing my fingers that in the future this will also be possible for Captivate.

In most cases, 5 colors will not be sufficient for Captivate to have a complete color scheme. The reason is that Theme color palettes in Captivate have 10 colors (see later). 

Add swatches

Second step in my work flow is to extend the palette to more colors (not necessary 10), that match the existing scheme. This can be done, swatch by swatch,  with the color picker or with the color wheel. Very often I will add white or a very light tint of one of the existing colors (using HSB), and a very dark one or black (if it is not yet present). A similar approach is used by the Tints in Theme colors (see later). Depending on the style chosen for the Adobe Color Theme, maybe you'll need a very contrasting color as well.
In this screenshot you'll see how I used the green color to create a very bright one by keeping the Hue (H in HSB) but increasing the Brightness (B) to 100%. I added 3 swatches in total to have a palette with 8 colors.

Color dialog box

The color dialog box has 3 different looks, depending on the buttons on the top. The active look can be detected because that button will have a very thin black line surrounding it (maybe you'll have to get closer to the screen to see it). Those looks are, from left to right:

  • "Theme Colors": this look will appear by default if the selected object's Fill (or Stroke) has a default Object style using a Theme color, or if its color has been applied from the Theme Color palette.
    The top row shows the Theme colors (see later), under them you'll find 5 extra tints for each theme color. I regret that it is not possible to see the color code of any of the colors directly, it would be great if they showed up on hovering over a color (as hexadecimal code) or even better if you could have full info in the color wheel when clicking on a color. That is not the case (yet?). When exploring, I found that all tints have the same hue (in HSB), different Saturation and Brightness.
    At the bottom you'll find the colors as they were last used, last used color is the first in that sequence. Not that useful (my personal opinion). That row is dynamic, changes whenever you use another color.


  • "Swatches": this look will will appear by default if the selected object's Fill (or Stroke) color has been applied using the Swatches Manager.

    You will see the swatches in the upper section, and the 'last colors' palette at the bottom

  • "Color Wheel" will never show up by default. It allows you to choose a different color, either by picking it (click first on the right vertical bar to choose a hue, then you can change saturation and brightness in the big rectangle) or by entering a Hexadecimal or RGB code. Contrary to the dialog box for adding a swatch,  HSB is not available here. It also shows the last used colors.

  • "Color Picker" is the last button, no look on itself. It allows to pick a color somewhere outside of the dialog box. While moving the picker you'll see the Color Wheel showing up in the dialog box.

A similar Color dialog box shows also up for the gradient stops when editing a Fill gradient, when customizing colors in the Theme Color palette, and in a reduced edition when customizing colors for Learning Interactions.

Theme Colors 

This new feature in Captivate 8 allows to change quickly the look of an existing theme (object styles, master slides, skin). Next week I will talk more extensively about those changes, because not every style will be edited automatically when applying a new palette of theme colors. My work flow, after having imported and extended a color scheme in the Swatch Manager, is to create a custom Theme color palette based on those colors. With that work flow, the color dialog box will always appear in its first look and provide besides the original Theme Colors a set of 5 extra tints for each theme color. Although there are by default 10 colors in such a palette, you can assign the same color more than once. More details about the use of the 10 colors will be provided in the next blog post.

Contrary to the color schemes created with Adobe Color - ase file format - the Theme Colors are saved as XML files. You can find them in the Layouts Folder (under eLearning Assets in a public folder). The XML file is pointing to the RGB codes as you can see here:

You could create a custom theme colors palette by creating new XML files, but you'll need a more exact number for RGB in that case then the one provided in Captivate. An alternative is this work flow:
  • Open the Themes list with the big button on the top bar

  • Click on the Theme Colors button, bottom right

  • Theme Colors dialog box, in its Basic view only gives you the dropdown list with color palettes


  • Click the Customize button (bottom right) to open a hidden part of the Theme Colors dialog box (with Basic button you can hide that part again)


  • You'll see the 10 colors, and clicking on a color will open the Color dialog box in its "Swatches" look. You can now customize that color. The names of the colors are not really relevant. Some colors are not really used in most themes but that is another story, which you'll discover in a later blog post.

  • When you are ready, first change the name of the theme: blue text 'White' can be edited; there is no Save as (at least I couldn't find it).

  • Click the Save button: custom Theme Colors palette is created and immediately applied to the present project. You'll find its definition in a XML file with the same name in the public folder I showed before.
From now on you can use these theme colors for all editing. In the next blog post I'll explore how those colors are used in the current themes in Captivate, and how you can apply them to learning interactions. That post has now been published.

Summary

If you made it up till this paragraph, maybe you'll be confused by the Captivate Color Jungle?  Here is a short summary of the described work flow, to create Theme Colors from a custom Adobe Color scheme:
  1. Import the 'ase' file in the Swatch Manager, using the Load button

  2. Add more swatches to the default 5 colors of the scheme, using Color Wheel or Color picker in the Swatch Manager

  3. Save that extended scheme as an 'ase' file (because custom color schemes in Swatch Manager cannot be saved); that way you can reload it if necessary

  4. Open the Theme Colors dialog in its extended version, customize the 10 colors.

  5. Change the name of the default theme

  6. Save the custom Theme Colors palette

Thanks for your patience, please leave your comments! May a lot of your wishes be fulfilled in 2015. I have some for Captivate as well :)

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.

System variables in Captivate 8/9 and 2017

I published a new version of the table with system variables for CP2019. It is still free to download and personal use. Check out: 

Intro

Captivate 9, 2017  users: there is no change about system variables in both versions, you can download the same table.

The post 'System variables in Captivate 6' has been very popular, probably because it offers more details than what can be found in the documentation of Captivate itself. Later on I mentioned some new variables in Captivate 7 in the post New Features in 7.0.1.
Time to upgrade the table for Captivate 8, you can download (for free) the pdf from here. The document is encrypted to discourage abuse. You will be able to print it at low resolution (150dpi) and it can be read by a screen reader. 

The table was first proposed at the Adobe Learning Summit presentation about Advanced and Shared Actions. 

New

Captivate 8 only added two new variables:

  • cpInfoMobileOS in the category 'System Information': is read-only and detects which device is used, returns a number or a case-sensitive string

  • cpInfoGeoLocation in a new category 'Mobile': returns the geometric location when using a device on which such detection is enabled. This is the first variable that has not one but three components. Latitude, Longitude and Accuracy are numbers. There are several tutorials around, like this one.






Captivate 8.0.1 Install? Keep your Customisation!

Intro

Today an important patch for version 8 was released, to upgrade to version 8.0.1.242. Like with the update to 7 I wonder why this is not a full 8.1 or even 8.5 because there are not only a lot of bug fixes, many features were extended and even added. Have a look at "What is new" for a summary. And Dr. Pooja Jaisingh already blogged and posted some other links: Free Update to Captivate 8. In this article  by my friend Michael Lund you'll find not only his first reflections but clear instructions about installing the patch. But none mentioned some of my favourite new features: using SHIFT to constrain an ellipse/rectangle shape to a circle/square and big improvements to color management. 

But this post is not meant as a personal summary of the new features! As an advanced user I'm used to customize Captivate of course: custom themes, custom theme color palettes, custom shapes, custom effects and... custom workspaces because I'm using Captivate 8 in Expert mode. And when following Michael's (correct!) guidelines for updating, most of those custom items will get lost. If you do not are happy with the default items, never customize, do not bother to continue reading. However, if you share my frustrations about losing precious work, maybe you could find some workarounds in this article. Some of them can also help when you have to 'clean' a tired Captivate application by killing its Preferences.

Workflow 

Before installing an update, before deleting the Preferences folder (or using the CleanPreferences files in the subfolder 'utils'):

  1. Find the custom items in these locations (I'm on Win7, will be different on Mac):

  • Workspaces in   \Users\<yourprofile>\AppData\Local\Adobe\Captivate 8.0\Workspaces   
    which means they will be refreshed because this is in the Preferences folder. Here you see the default workspaces, each defined by two files.


  • Custom Theme Color Palettes in   \Users\Public\Public Documents\Adobe\eLearning Assets\Layouts\8.0\ThemeColors
    Layouts is one of the folders you have to delete before installing a patch.


  • Custom Themes in  \Users\Public\Public Documents\Adobe\eLearning Assets\Layouts\8.0\en_US
    I will mostly not save my custom themes in this folder, but better check if you have some there. The last item in the path can of course be different if you didn't install the US English version as I did.


  • Custom Effects contrary to the themes, I like to have some custom effects in the Gallery with other effects in a subfolder Custom:
    The Gallery can have more custom items. Eventually check also the folder en_US in the installation folder. Maybe you have edited some of the files there as well.

  • Copy all the custom items to a safe place

  • Install the update, or Clean Preferences

  • Copy the custom items back to the same locations described above.

  • Of course, if you want to go back to Expert mode to be able to use the custom workspaces, you'll have to edit the Preferences again:

    Bonus

    Wondering what SFH means in this new setting:

    Success/Failure and Hint captions can now be replaced by cool shapes, also for Question slides! And it is no secret that I'm a big fan of Shapes over the older objects. Now waiting to be able to import SVG as shapes :)

     

     


    Drag&Drop tips

    Intro

    Since Drag&Drop appeared, there are many questions on the forums about them. Although the wizard is an easy way to create quickly a simple interaction, once you explore its functionality more in depth, not everything is self-explanatory. In this post I will try to offer some tips, do not expect to get a complete tutorial.

    Tip1: Labeling

    It is not really necessary to label the objects used in a Drag&Drop for simple interactions, but if you will need to use object actions labeling drag sources and drop targets can make life so much easier. And my true fans do know that I'm a labeling freak.

    This is a warning: label all objects before creating the Drag&Drop. If you change your mind and want to add or edit names after having created the Drag&Drop links, you'll break the links from/to objects that get a new or changed name. This is certainly not the case in other situations in Captivate: it is perfectly possible to change names of objects that are used in advanced/shared actions, the names will automatically be changed in the actions. This is not the case for Drag&Drop, so try to avoid the problem by labeling objects first of all.


    Tip2: Success message

    It is a bit strange, D&D has a default Failure caption that will appear when the drag answer is incorrect, but it has no default Success caption. You have to take care of it yourself, this way:

    • Create a message, it can be a text container (use a shape, much more choice that for captions), an image, an animation, an audio clip or even a combination of several objects (group them in that case).
    • Make the message invisible, either using the option in the Properties panel, or using an action On Enter of the slide.
    • Define the action Show Message (which can be a group or an object, like defined in the first step) for the Success action in the D&D panel.

    Update: if you upgraded to Captivate 9, you can forget about this tip: it is no longer necessary to use the workaround because the Success caption (or shape) is now available in the Drag&Drop panel as an option.


    Tip3: Object Actions

    Besides the actions that are executed when the user has clicked the Submit button (which I used in Tip2), you have the possibility to trigger an action by each individual drag movement. Bit weird, but in Captivate 8 you'll find those actions not as expected under the Actions tab but under the Format Tab.

    You can use this functionality for several goals, like to:

    • show an individual message (can be text, image, audio) for each drag movement
    • simulate having the moved drag sources in a specific sequence (like books on a shelf)
    • ...

    What is not mentioned anywhere in the Help is the fact that if you specify a simple action (from the dropdown list), the playhead will be released as is the case for any simple action in a normal situation (remember my blog post with video on Youtube: 'Why choose standard over simple action?'). And that is certainly not what you want! By default a D&D interaction has a pausing point at 1.5secs (like normal question slides), but a simple object action will cause the playhead to continue, user will not be able to finish. 

    My recommendation: never use a simple action as object action! Replace it by an advanced, or better, by a shared action. For examples as mentioned above you'll probably have similar actions for all the objects, which makes shared actions the way to go. Watch this movie, you'll see what happens when a simple action is used, and how this is corrected by replacing the simple actions by shared actions.

    Movie

    The object actions on the slide with the simple actions (slide 2):

    And I replaced them on slide 4 by a one liner shared action:

    On the last slide I used a shared action as well, that hides the group and shows one explanation.




    Custom Short Answer Question

    Intro

    This is not the first time I publish about creating a Custom Short Answer Question. The default type in Captivate is pretty limited:  the user should enter exactly the same answer as the defined correct answer which is almost impossible with this type of question. The normal validation for such a question is to check if some keywords are present, and eventually if some other keywords have not been used. My previous posts were created with Captivate 5 for publish to SWF only:

    Widgets were meant for SWF-output only, including the widget by Jim (this one, he has some widgets that are also compatible with HTML5). Since Captivate 7 the TextArea widget got a companion, the 'Scrolling Text Interaction'. Don't be confused by the name, it is essentially the same widget, but compatible with HMTL5 output. 

    This week I accepted another challenge from a Captivate user on the forum, concerning the use of TextArea (or Scrolling Text) with a more complicated condition than the one I described in the previous blog posts: How to verify that a variable "does not contain" a value? As you probably know, the operators in the IF part of a conditional action are bit limited: there is an operator 'contains' but no negative counterpart. My first reaction was to propose the use of JS, but my intuition told me I should also try with advanced actions. This post will explain how I solved that problem, and I was very happy when the King of Javascript in Captivate, Jim Leichliter posted his alternative with JS in the same thread, scroll down to find the script.

    In this post I will explain the conditional advanced action, and also point to another well-hidden gem, only in Captivate 8: the Captivate team has now embedded the variable control in the Scrolling Text Interaction! Don't tell that they are not listening to users :) What was only possible with the extended TextArea widget by Jim in previous versions, can be done with the supplied Scrolling Text Interaction.


    Challenge

    The description of the problem: " We are basically validating the content in the widget and showing appropriate feedback. Since the user can enter anything in the widget, we are only tracking the keywords. To be precise, we are trying to create an Advanced Action like this, where the text entry should contain the words Organizational, Behavioral, and Managerial but not the words Transformation and Non-Compliance. If the entry contains any of the "illegal" words, then incorrect feedback caption should appear."
    Translated: when the answer is submitted, the conditional action should show a Positive feedback when:
    • the three first words are included in the text
    • the last two words are not included in the text
    If those conditions are not all fulfilled, the Negative feedback should be made visible.
    Because of the missing operator 'does not contain' this cannot be done with one decision, one IF combination using AND, which explains why the user was stuck.


    Solution 'Divide et Impera' 

    After a long career as professor, this has become one of my mottoes: make it simple by splitting up the problem:
    1. Check first if all the conditions are fulfilled and store that result in a Boolean variable. There are a lot of Booleans in Captivate: variables that can have only two values, No/Yes, 0/1, False/True. I will mostly choose for the 0/1 combi. I created a user variable v_TA_OK with a default value of 0 (meaning all conditions are not yet OK)

    2. Show the appropriate feedback based on the value of that Boolean.
    This was possible because of the typical way Advanced actions are executed in Captivate: 
    • all statements are executed in sequence and
    • all decisions are executed in sequence
    • the action is not stopped when a positive condition is met

    This has led to a conditional advanced action with three decisions.


    Movie

    Watch this movie, created with Captivate 8, customized theme 'Flat', using custom shape buttons (one is a freeform shape) with three states and the new Scrolling Text Interaction.


    Advanced actions - variables

    Variables

    To make the question more universal, I didn't use literals for the words, but stored them into variables. These variables were created:
    1. v_one, v_two, v_three to store the words (can also be more words in one variable, but they'll have to appear in that sequence) that have to be included in the answer

    2. v_notOne and v_notTwo for the words that are forbidden in the answer 

    3. v_Answer to be associated with the TextArea or Scrolling Text that will store the value typed in the answer

    4. v_TA_OK: the Boolean variable explained above; default value = 0, will only be set to 1 if all conditions result in correct.

    5. v_null: an empty variable that is needed to create conditions for the other advanced actions (as the ones that check if all word fields have been filled); I will not explain those actions here; more info: Where is Null?

    Conditional action Check_Short

    This action is triggered by the Submit button on the Short Answer slide. This was the answer to the problem presented at the beginning. I will not explain the other advanced actions like the one triggered by the Reset button or the different actions On Enter for slides to reset the situation to normal. The action has 3 decisions:

    OKWords

    This decision checks if all the imposed words are present in the Short Answer, using the operator 'contains', with AND combination. If that is the case, the Boolean v_TA_OK will be set to 1.

    NotOK

    The not-allowed words are checked with this decision, using again the operator 'contains' but this time in an OR combination, because even if only one of those words is present, the negative feedback has to appear. If any of the words appears, the Boolean v_TA_OK is reset to 0. It is very important that this check only occurs after the first decision! After this second decision (in this case) all conditions have been evaluated and the Boolean variable v_TA_OK has its final value, will be used in the last decision 

    FBack

    Only this last decision has also an ELSE part, as you can see in the total view of this conditional action:

    As I explained in the last slide of the movie, because of the stack order, where an Interaction always is on top even though it is not on top in the Timeline, I had to hide the Interaction to be able to show the Feedback groups, because they were in the same location. Here is the Timeline of this Short Answer slide:

    You see that the Interaction (indication is Widget on timeline) is not on top. The Next button is not on this slide, but on the first slide and timed for the rest of the project. That shape button is hidden/shown when necessary.


    Tips

    Variables are case sensitive, and contrary to validation of a Text Entry Box it is not possible to get rid of that case sensitivity for variables associated with this interaction. If necessary you'll have to create more decisions.
    I wanted to emphasize the importance of sequence by this blog post, and the fact that Captivate will always evaluate all conditions/decisions. This is not always the case in normal programming languages. Trying to explain:
    • The first decision is positive, variable v_TA_OK will be set to 1, but there will not be ending of the condition
    • If the first decision is negative, variable v_TA_OK will remain at 0, no need to include an ELSE part.  This means that the variable can never be set to 1 anymore, but the second decision will nevertheless be checked by CP.
    • If both negative words are not included, nothing happens with the second decision, v_TA_OK will keep its value 1 or 0 depending on the result of the first decision, because there is no ELSE part.
    • If one of both negative words are included, the second decision will reset v_TA_OK to 0, whatever its value was at the end of the first decision
    The new possibility in Captivate 8 to change the value of the variable associated with the Scrolling Text Interaction and have this displayed in the interaction is important if you remain on the same slide. Contrary to the extended version of Jim's TextArea widget, the rule that variables for each interaction are cleared when you leave the slide is also applying to the Scrolling Text. If you want to keep value of the variable you have to transfer it to another variable.




    Reuse Shared Actions in other Projects - Captivate 7 vs. 8

    Intro

    A while ago I started a sequence of tutorials about shared actions in Captivate 7: I promised then to explain how you can reuse the actions in another project. And then Captivate 8 appeared with a considerable improvement of shared actions: variables and literals are now candidate parameters. In my last article I explained the difference and consequences of this extension. And the examples I showed in my review of Features of Captivate 8, which were not possible to realize only with shared actions in Captivate 7 prove the value of that improvement.
    Advantages of using shared actions (both in 7/8) within same project:
    1. Saving time: you don't have to create a new name as for a duplicated advanced action, just choose the parameter(s)
    2. Managing shared actions is in the Library, not in a separate dialog box
    3. Since you are using the same shared action over and over again, this helps keeping file size down
    The real power of shared actions is even more apparent when you start to reuse them in other projects. You only have to get them in a new project, and you can use the shared actions like you did in the original project. Of course, you'll have to create the objects that have been used as parameters. Captivate 7 users will not be able to use variables, nor literals as parameters. For Captivate 8 users have a close look at the tips at the end of this article. Let us start with the different work flows that can be used to get shared actions from one project to another one. 

    Getting shared actions in another project

    1. Using Export/Import (7 - 8)

    Similar to other Library assets, you can export shared actions from the Library and import them in another project. Use the small icons in the top bar of the Library:

    The extension of those small exported files is cpaa. When they are imported in another project:

    • They appear in the Library of that project, with a Usage of 0

    • If the shared actions do use variables that are not defined as parameters, those variables will be created in the project to which you imported the shared actions.

    2. Copy/Paste from External Library (7-8)

    This is my preferred work flow. I love keeping much used assets in a separate project file, that I use as External Library:

    • Project file that you want to use as Library has to be closed

    • Use File, Import, External Library and point to the project file

    • Copy/paste the shared actions to the Library of the active project fie.

    The results will be the same as with the first method, but you don't have to bother about saving the exported files somewhere and importing them from that same location. 

    CP8 tip:

    If you are using the default UI, not the Expert mode, this External Library will open as a Floating panel. This means that you can drag it wherever you want, increase its size etc. That functionality is available in CP8 for the normal panels only when you choose for Expert mode. 

    3. Drag from External Library (8)

    These work flows are not possible in Captivate 7.
    You can drag shared actions from the external Library to the present project Library, alternative for Copy/Paste/
    But you can also drag a shared action from the External Library directly on:
    • a slide: in that case it will be associated with the On Enter event, and you can immediately choose the parameter
    • an interactive object (button, click box, shape button...): in that case the shared action will be associated with the On Success event of the interactive object.
    At the same time the Shared action will appear in the Library, but since it is immediately used, there will be a Usage of 1. If the shared action has variables that are not defined as parameters, they will be created in the project file. 
    Dragging from the library on a slide or an interactive object is also possible from the present library of course.

    Tips and Tricks for Captivate 8 users

    1. Warning about dragging from External Library on event

    If you have several shared actions that use the same variable, do not drag them on slides or interactive objects. There is a small bug (hopefully will be removed soon): if you drag them one by one to an event (on slide or object), before those shared actions are in the present Library, the variable will be created as many times as you execute a drag action. And each variable will have another name, which can be disturbing the logic of your shared actions.

    Example: 

    In the Dashboard use case, described in Features of Captivate 8 the variable v_counter is used in two shared actions, and one advanced action:

    If you drag the shared action FirstViewBt from an External Library to a new project (like the last movie in the same article), not to the Library but immediately on one of the buttons used on the first dashboard visit, the variable v_counter - not defined as a parameter - will be created. If you do the same with the shared action NextViewBt, it will not use the created variable v_counter, but a second variable v_counter1 will be created. This will cause problems: not only will the number of visits not be updated as expected, but the Advanced action, ResetStart, will only reset the variable v_counter, not the second one v_counter1

    To avoid this kind of problems: drag the shared actions (all at once is possible) from the External Library to the present Library (Usage will be 0), and drag them from that Library onto events.

    2. Choosing variables as parameters

    In Captivate 8, variables and literals don't have to be parameters, they are only candidates. You can easily choose a variable to be a parameter in one shared action, and not in another one. 

    Example: 

    For the Dashboard use case, the variables v_ch1, v_ch2, v_ch3 and v_ch4 are:

    • defined as parameters both in the shared actions FirstViewBt and NextViewBt because they have to be edited when applied to another button

    • not defined as parameters for the shared action EnterDash, because they have never to be edited.
    When dragging (or copy/paste) the shared actions from the External Library to the present project Library, this saved time because I didn't have to define the variables, they were imported with EnterDash. I could use them right away as parameters in the two other shared actions.

    3. Careful with literals as parameters

    In some rare use cases it can be interesting to define a literal as a parameter. I want to warn however: if you define a literal of 1 as a parameter and that number appears several times in the shared action, all the literals will be changed to the value you give when entering the parameter value. 

    Examples

    QuizMessage: a conditional action with 4 decisions, that shows a different item/group based on the obtained percentage for a Quiz. In this case it can be useful to define the limiting scores as parameters:

    Whereas in this case, it is not a good idea to define the '1' as a parameter, because it appears in two different lines, once in the condition itself and once in the Assign statement. Only when you can replace the Assign by a Toggle statement, you could define the literal as a parameter because in that case it would appear only in the condition:


    Conclusion

    As long as you can apply the shared action without having to edit a statement/condition, or to add/delete a line they can be a real time saver. But often editing is necessary, certainly in Captivate 7. For the Dashboard use case: if you do not have the same number of buttons on your dashboard, you have to edit the EnterDash action for sure.  And how do you manage shared actions? I will write another blog post in the near future on those subjects.




    Parameters in Shared Actions - Captivate 7 vs. 8

    Intro

    In my last article, where I explained my exploration of Captivate 8, with strong focus on the enhancements of shared actions (shape buttons, theme colors), I have promised to explain my work flow to prepare the shared actions for import into another project. The idea is to create a library of shared actions that can be used over and over again in all future projects. Maybe you want me to create such libraries, post a comment if that is the case.
    Since I started a sequence of articles about shared actions in Captivate 7 (Dare to Share 1 and Dare to Share 2) and promised then to explain how to reuse shared actions in other projects, this article will be an in-depth explanation of the differences between version 7 and 8 concerning parameters. 

    Parameter in shared action - definition

    What is a 'parameter', new Captivate term since the introduction of shared actions with Captivate 7? It is an item that is replaceable by another item when you reuse the shared action either in the same or in another project. The range of items that can be used is extended in the latest version (see further). Some examples of 'item': slide, text container, image, button, audio clip, group. When defining the shared action, you have to enter a description of each parameter. Those descriptions are very important (I know some users find it always cumbersome to type descriptions) because the 'replaceability' rules are very tolerant, flexible. It is not necessary to replace an item by an item of the same type! You can replace a text caption by an image, an audio object,  group with objects, perhaps for a Hide or a Show action (examples in Dare to Share 2).

    What is the difference in parameters between Captivate 7 and 8 

    Captivate 7 compared with Captivate 8 

    1. Parameters in Captivate 7

    All slides, objects, groups that you use in an advanced action to be converted to a shared action, compulsory will become a parameter in Captivate 7. Examples:
    • Slides: mostly used with 'Jump to' statement, not really interchangeable with another item
    • Non-interactive objects  (captions, images, rollovers, highlight boxes, shapes, audio objects...); often used with 'Hide' or 'Show' statements. Those objects are interchangeable, also with interactive objects and groups; they can also be used with 'Apply Effect'.
    • Interactive objects (buttons, click boxes, Text Entry Boxes, shape buttons), that can be used with 'Hide', 'Show', 'Enable', 'Disable' statements, totally interchangeable like non-interactive objects
    • Audio clips: when used with statement 'Play Audio'; not really interchangeable contrary to audio objects.
    • Grouped objects: mostly with Hide' or 'Show'. Even if all objects in group are interactive, the statements Enable/Disable cannot be applied. Neither can 'Apply Effect'.
    The most important limitation in Captivate 7 is that variables cannot be a parameter. As I explained more in detail in this On Demand webinar about Shared Actions (Adobe ID required), this means that you'll often be forced to use the shared action as a template for an advanced action, instead of using it as shared action. I will explain this work flow in a future post for CP7-users. In this screenshot you see a shared actions opened in the Advanced Actions dialog box (using the template menu top left, where you see ChapIn). First two statements cannot be changed if used as a shared action. This is the CP7 equivalent of the actions described for the first buttons in the Dashboard in my last post.

    When you import a shared action into another project, and that action is using variables, the variables will automatically be created in that project, which is a time saver.  If only the shared action shown in the screenshot was imported in another project, the variable v_ch1 would be created.  Another reason to establish a personal labeling discipline :).

     

    2. Parameters in Captivate 8

    Captivate 8 has the same compulsory parameters as Captivate 7 but it has also candidate parameters, a term I'm using for those items for which you have the choice: either you accept them to be static, or you convert them into a parameter. Candidates are:

    • variables: as used in statements 'Assign',  'Increment/Decrement', 'Expression' or used in conditions for conditional actions.
    • literals: which can be used in the same statements and also in conditions; first warning: if you choose to have '1' in this example as parameter, all literals '1' will be considered as the same parameter (more about that in a later post).

    I explained in my last post how to convert a candidate into a parameter. In this screenshot you see the same action in Captivate 8 as I showed previously for version 7:

    The variable v_ch1 was converted to a parameter, which made it easier to reuse this shared action for different buttons in the same project. The variable v_counter, nor the literal '1' were converted to parameters, they remained static. Reason is that the first statement, Increment, is the same for all chapters. I will always use v_counter, and increment it always with the same amount '1'. Why did I replace the Expression from CP7 by Increment? Easier, but that new statement did appear with 7.0.1, was not yet there when I created this dashboard with 7.0.0.

    What happens when importing such a shared action in another project? The variables that are not converted to parameters will again be automatically created. In this case, the variable v_counter will be created.


    Conclusion

    This comparison and introduction to the 'parameter' rules, will make it easier to explain how I used this knowledge to save as much time as possible in the use case described in my previous article. Thanks for being patient.