- 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
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
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
- 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
- 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.
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..
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?