Reader, known or unknown, accept my sincere wishes for an exciting, healthy and peaceful 2011.
And for myself, sorry for the repetition I do hope to have more interaction with you. Please curse me, correct me, tell me blog postings are too long, too short, too many, too few, too serious, too much/bad images, missing audio, missing information about me, ... anything you want. I do welcome any comment, suggestion, question, issue, usecase.
Some people on the Captivate user forum asked how I did learn to use advanced actions and variables? To be honest, my way of learning is mostly by jumping in, bumping my head, making mistakes, restarting, trying to avoid those mistakes, etc. Since I started using Advanced Actions, by that process of trial and error I came to adopt a certain workflow. And in this blog post, I want to offer some tips to let you perhaps avoid some bumps on the head ;-). Here I suppose that the Captivate slides themselves are already created, that you have decided how to put up the project.
- Take time to "write" a detailed description (I do use Evernote or Onenote, but a piece of paper is also OK) of what you want to realize, and take into account every possible situation that could occur.
Examples (situations): multiple attempts, going back, typos by user.
- Initializing: is often needed for variables, for (in)visibility of objects etc; has this to be executed only once, or several times?
Movie is linear (going back not allowed): no need for an advanced action to initialize.
Going back allowed: initialize using an advanced action (on entering slide)
Identify system variables you will use
Redaction of a list of necessary user variables, choose labels for them
2. Identify triggers/events
Advanced actions have to be triggered, to be attached to events. It is easier to create several advanced actions on different triggers than one complex advanced action on one trigger. But the number of available triggers is limited, and moreover some triggers do not support all possible statements in an advanced action. To see which statements in an Advanced action will be possible, open the drop down list in the Properties panel, region Action for this trigger. Here is the list of possible triggers in your project:
On Enter slide: normally any statement can be added to an Advanced action attached to this kind of trigger. Very suitable for initializing, for preparing the objects as you want them to look on this slide. Only limitation: "Show" statement is only possible for objects that do exist on this slide (not for objects on another slide that are timed to display for the project - you can use the "Hide" statement however). On Exit slide:you cannot use the "Show" statement, not even for objects that are on that slide. You cannot use the "Hide" statement either! This trigger is suited for calculating variables that are changed by (user) actions on this slide, to increment/decrement a counter etc.
Button/Click Box: can trigger an advanced action on Success and another one on Failure (after last attempt); same kind of statements as for entering a slide, with moreover jump to other slides possible.
Text Entry Box: can also trigger both on succes and on failure, if you validate the user entry. If you do not validate the entry only the success action is available as trigger.
Question slides: can trigger an advanced action on Success and another one on Failure (after last attempt); this action will be executed, not when the user clicks the Submit button, but when he clicks on the slide or uses the shortcut Y (if you keep the default Success/Failure captions).
3. Choose proper action type
Which advanced action(s) do you need?
Standard action: if you need a sequence of actions to be performed, be sure to choose the proper sequence because statements will be executed from top to bottom. If such an action seems not to work well, it can help to add as last statement the action 'Continue'. You can create AND, OR combinations, but also customized conditions (AND + OR, watch the sequence and logic in that case).
Conditional action: if the actions to be executed depend on a question (decision), there are at least two sequences of statements needed:
If you only need two sequences, use a single decision and put one in the THEN, the other in the ELSE part
If you need more sequences, use multiple decisions, and only the THEN part.
Combination Standard+Conditional action: be sure to put the standard action in the first decision. I discussed this situation in this article
I blogged already about the importance of good labeling
. Some extra tips:
- Prefer short names, starting with really identifying characters (works better in dropdown lists).
- Normally you will have similar objects, variables, advanced actions where you will use the Duplicate functionality and do some editing; choosing small, significant differences in the names (1 or 2 characters) makes editing a lot easier.
- If you have a lot of advanced actions, using characters in the name that indicate the trigger that it has to be attached to, will avoid a lot of searching.
Examples: EntSlide1, ExtSlide1
- Do not start user variables with r or c (both are first characters for system variables), but use another first character.
5. Create user variables
You can start creating user variables with Project, Variables. This dialog box has all the functionalities. There are two other possiblities:
- To create a user variable to be associated with a Text Entry Box, you can use the small X in the Properties accordion, region General. It is a pity that the defautl associated variable (something like Text_Entry_Box_x) is not replaced by this better labeled user variable (see below: cleaning up the list with variables).
- If you forgot to create one user variable, you can also do it using the button Variables in the Advanced Actions dialog box. But: although the look of the opening Variables dialog box is identical to the one that opens with Project, Variables, you will not be able to remove variables if you choose this workflow.
Please, clean up your list with user variables (use Project, Variables), when you have finished creating your properly labeled variables. It is always easier to manage a shorter list.
6. Create advanced actions
- Use the Save/Update button as often as possible (pity that there is not a shortcut like CTRL-S)
- If you have similar actions - where you will use the duplicate action functionality - create one of them, test it thoroughly before duplicating; that will you save a lot of time.
- If you have a complex conditional action, do not put in all decisions, start with one, test it, add a second, test it etc. Sometimes I even test out first a sequence in a standard action, then copy the statements to the conditional action regions.
7. Test, test, test..
No one likes this, but please do test all situations. It will help for testing to put up on the slides some (temporary) Text Captions showing the user variables you are manipulating. This makes it easier to trace them and to detect bugs.
Did you read everything up till now? Congratulations! Whow, this was the most difficult post I wrote since I started blogging. And I'm very curious how it will be received. I should have added audio, images or a worked out project as an illustration. I have tried to "compilate" what is floating in my head, but am not sure this compilation is OK. Anyone to help with the debugging? Other suggestions? If you want me to apply what I described to one of your projects, add a comment. Please?