"Beat the system" - save time creating Advanced Actions (Captivate)

Intro

Wondering about the title? I borrowed it from the answer of the user about my solution for her problem in this thread: http://forums.adobe.com/message/4859612#4859612 'Very brilliant way to beat the system, I am impressed...'

To create that solution, I followed my own instructions described in Look before you leap... and Be a Captivate ecologist. The user had created a solution, but it was taking so  much time to duplicate and edit the advanced actions, reason why she looked for help. 

The example in this post was created with Captivate 6, in which I again used a lot of shapes because of their unique possibilities. This is not possible in previous versions, so I'll explain the changes to be made to the example for versions 5/5.5. 

Look at the end of the post: for CP6-users I offer a template with the advanced actions, that can be easily customized (instructions included). 

I extended the solution so that it also includes an answer to a question that often pops up: conditional showing of a Next button when all information has been viewed. The simple solution where this condition is not required, is also available in the template. The user was hiding/showing the play bar for that purpose, but I choose to hide/show only a Next (shape) button. For previous versions, the version with the play bar will be easier.

User wanted to have the same work flow on a lot of slides: user has to click several buttons to show Text Captions, after having clicked all buttons. She had created advanced actions triggered by the buttons to achieve her goal, but the problem is that duplicating this for a lot of slides means a lot of work because the text captions have different content on each slide, so a unique ID was needed for each of them which means tiresome editing of the advanced actions pointing to those Text Captions.

Example

Have a look at this movie. It has only 4 content slides after the introduction slide. each of them has 4 buttons, that will show a Text container. The content of the containers is different on each slide. The Next button, that is also on the Intro-slide will only appear when all Text has been viewed.  The text container at the bottom shows the number of the content slide and doubles as a button to hide all text. The last slide has some tips for those who get the template (Captivate 6 only).

Captivate 6 solution

Slides - objects

  1. Slide Intro has a shape button BtNext, displayed for the rest of the project, placed on top and pausing at 2 seconds. 
  2. Slide Content1 has a lot of shapes, all are displayed for the rest of the project and all placed on top; look at the screenshot of that slide with the Timeline and you'll see from top to bottom:
    • BtnsGrp: object group with 4 shape buttons (Btn_One, Btn_Two, Btn_Three, Btn_Four), configured as buttons and pausing at 1,5secs each. Those buttons will trigger an advanced action that has not to be edited depending on the slide, thus allowing the Display for rest of Project tming.
    • Bt_HideAll, a shape button that shows the text 'Slide x' and is also configured as a button to trigger a simple advanced action that hides all text captions. This shape button ihas no pause, is displayed for the rest of the project, same action triggered on each content slide.
    • CaptionsGrp: object group with 4 shapes (TC_1, TC_2, TC_3,TC_4) used as Text containers. As you see they show only a variable, which allows me to display them as well for the rest of the project. The content will change if the value of the variable is changed. That is the 'trick'.
       
  3. Slides Content2...Content4 have no objects at all.
  4. Slide End has an Interaction (Accordion)

Tip!!: 

Be careful when creating the Text Containers TC_1... to make them big enough to show the largest text you'll have to put in, and when inserting the variable to change its length (default value = 15) so that it will show all the text

 

Events - triggers

Content slides: On Enter for those slides will trigger an advanced action Enter_Connectx (where x is the number of the content slide). The primary goal of that action is to populate the variables shown in the text contaners TC_n.  It will also hide some objects. The template has an alternative if you do not need that condition for the next button, and the alternative action is EnterConnectx . Those actions are different for each content slide. 

End slide:  On Enter will trigger the action EnterEnd that will hide all the objects that were displayed on the content slides and the Next button.

Bt_One, Bt_Two, Bt_Three, Bt_Four: On Success will trigger advanced actions Show_One, Show_Two, Show_Three, Show_Four. The template has also the alternatives ShowOne, ShowTwo, ShowThree, ShowFour if you do not need the condition for the Next button to appear only after having viewed all text.

BtHideAll: will trigger a standard advanced action that hides all text containers.

Variables

I created these user variables:

  • v_slide will store the content slide number that is displayed in the shape button BtHideAll; default value = 0 but I reinitialized it to 1 on the Content1 slide as well (in case user gets back to that slide)
  • v_one, v_two, v_three, v_four: variables that will contain the text for the corresponding text containers TC_1, TC_2, TC_3 and TC_4; default value=0
  • v_show1, v_show2, v_show3, v_show4: with default value 0 will be used to track if a text container has been viewed because then they'll get the value 1 (toggle)

No system variables were used in this case.


Advanced actions

Enter_Content1: a standard advanced action, triggered on entering the first content slide. It is different from the other content slides, because I assign the value 1 to the variable v_slide. The screenshot is self-explanatory: re-initialisation of the variables v_show1...4 that are reused on each slide, hiding the Next button and Captions, initialising v_slide.  The cumbersome part is assigining the text to the variables. I suggest to put the text in a text caption off stage and use copy/paste. 

Enter_Content2, ....and all subsequent content slides trigger a similar advanced action as the first content slide with the exception of the v_slide assignment that is replaced by incrementing v_slide using the Expresison statement.

EnterEnd: standard action that hides a lot of objects

HideAllCaptions: very simple standard advanced action:

Show_One and similar actions Show_Two... Show_Four

This is a conditional action with two decisions:

  1. Always: a mimicked standard action that will show the appropriate Text Container, hide the other text containers and toggle the variable v_show1
     
  2. Next? is the real condition, checking the values of the toggles v_show1....v_show2 and showing the Next button when all have been set to 1. You do not need Else actions.
     

Captivate 5/5.5 solution

You can create the same solution in those versions, with those changes:

  • You do not have object groups, so some actions will have a lot more statements because you have to hide each object by a separate statement
  • On first content slide, replace the Text Containers by Text Captions that can also be displayed for the rest of the project and placed on top.
  • On first content slide, replace the shape button BtHideAll by two objects:
    • a text caption including the variable v_slide, displayed for the rest of the project and on top
    • a click box on top of that text caption that triggers the action HideAllCaptions; that click box cannot be displayed for the rest of the project but you can copy it and paste it to all subsequent content slides in one action. since it will always trigger the same action
  • On first content slide, replace the shape buttons Bt_One... by simple buttons. Again, they cannot be displayed for the rest of the project but they will always trigger the same advanced action. So, use the same copy/paste work flow as described for the previous click box.

 

Template (Captivate 6)

No link to a template, sorry. Although I like blogging and sharing, I dislike the lack of communication using this blog medium. Please, if you want me to send you the template in person, you'll have to contact me and provide an e-mail address. Either you try to reach me on Twitter (will follow you so that a DM with address is possible) or you use a private message on the user forums for Captivate. Would love to hear the reason of your request...

15 responses
Nice post Lieve,

I've messaged you via the Captivate forum. I'm learning heaps here. You are a great asset to the Captivate community.

Cheers,
Ben Waller.

Thanks for your nice comment, brightened a cold dark Monday.
You're most welcome.
I'm glad it did. I enjoyed a lovely sunny day here in Canberra AU, 25 degrees Celsius.
Thank you for sending me that file. Much appreciated.
Would you share your template with me?
I'm Lieve, and no, I don't offer files for free. You get already a lot of information, and detailed tutorials. Sorry.
I am still so confused with ths show and hide advanced action. I read the forum, blogs and watch a few tutorials and I am still missing something. I changed my image into a button in order to show the related text, I have copied the scripts from lilybiri's blogs and when I select the image (as a button) the text does not appear. I've been working on this for 3 days, please provide a non convulted solution
@umbcaggie Not everyone can master skills just by reading, maybe you need some F2F tutoring? You can contact me on info@lilybiri.com
thank you @lilybiri. i have captivate and programming experience, yet it has been a while since i've developed in captivate. I'm learning and teaching myself about some of the advanced action scripts...this one is a bit more challenging than others i've used tutorials and blogs to complete. I will send you an email shortly.
Would you be kind and share this template. I'm still a little unclear as to how this works and I would like the opportunity to play with it. I use Captivate 6. Thank you.
No, this is a pretty old blog post. I'm on Cp7 now, don't have that template any more. I'm always available for tutoring: info@lilybiri.com or you can post questions on the Captivate forums.
I've been searching for in-depth information on using advanced actions. Finally found it. Thanks, Lieve.
Thanks, Steve, I have been blogging about advanced actions since about 4 years:)
3 visitors upvoted this post.