Embed Software Simulations (Knockout slide)

Intro

Over 10 years ago I posted a blog 'Create/Use a Knockout Master slide'. At that moment SWF was the only way to publish a Captivate project, and in versions 5 and 5.5 Themes were not ‘grown up’ yet to their present power. Meanwhile I have pointed many users to that old article, and many claimed it was still useful. However time to clarify the slight differences and offer updated tips., Of course I will use a HTML example. 

Example Tutorial: 'Shared actions as Template'

This is a Captivate tutorial explaining how you can use a Shared action to create variables and as template for advanced actions. There are two versions. Here is a screenshot showing the difference in sim slides between version 1 (Full-size) and 2 (Embedded)

Version 1: Default software simulation

Personally I never use a software simulation in Demo mode, because it is better replaced by a Video Demo for its quality and advanced editor. I created a Training simulation, meant to learn about this Captivate topic. The UI of Captivate is rather complicated, hence my choice of a resolution 1600x900px. The ratio is important, here the common 16:9. In the limited space here, I don't want to embed the simulation because that would be almost useless. I published it as a HTML rescalable project. You can watch it using this link:

Full-size tutorial

In this first version, instructions are given using Audio. The captured Backgrounds (see Library) are filling the slides. Although this tutorial is rescalable, you will realize that using this on the limited space of a smartphone with a phone browser is not appropriate. It may be used on tablets (no incompaté:ible features), but the preferred devices are laptop/desktop. 

Version 2: Embedded in a content slide

I used the workflow explained below to create a second version, where the software sim slides are rescaled and embedded in content slides (1280x720px). On those slides there is space for a logo and more. The narration was replaced by text instrutions on the same slide as the software sim. Published project is also rescalable HTML. Even a tablet will probably be impractial in this version. Use this link:

Embedded tutorial


Setup for Embedded sim slides

For this example the simulation slides need to be embedded in a project  with a resolution of 1280×720 pixels. The captured slides were created with a resolution of 1600x900pixels, which is larger than the final resolution.  

To embed the sim slides, they need to be rescaled. If the original simulation slides have the correct resolution ready for embedding, you can skip Step 0.

Step 0 in Captivate (only if captured resolution is not correct)

Rescaling the software simulation to 2/3, which leads to a resolution of 1066x600px. You choose the resolution needed for your project, but keep 'Maintain Aspect Ratio' and 'Rescale all objects'.  Those are the default settings.

Step 1 (in Photoshop or other app) – create the Knockout image

In Photoshop I created images on two layers: the first one (FullTexture' will be used for normal content slides, the second one is the 'Knockout' image which has a transparent part.  Size of the file is same as the end resolution (1280×720). I used one of the provided textures in Photoshop as Fill. In the second layer I deleted a rectangle of 1066x600px to create a ‘knockout’ part in which the sim slides would fit. You see the size of the margins (with texture) in the screenshot: to the left – a vertical bar with a width of 200pixels, to the right one with a width of 14px; at the top another with a height of 90 pixels and a the bottom a bar with a height of 30 pixels. 

You can import the Photoshop file, and will have both layers as PNG images. See 'Roundtripping with Photoshop'.
You can use another graphics application if you cannot use Photoshop. You could also create a freeform filled shape in Captivate, start with the hexagon, which has 6 points.

Step 2 (in Captivate) 

Some maths to start with:
  1. calculate the difference between the widths of the vertical bars:     200 – 14 = 186 pixels
  2. new width project will be 1066 + 186 = 1252 pixels
  3. calculate the difference between the heights of the horizontal bars:   90 – 30 = 60 pixels
  4. new height project will be 600+ 60 = 660 pixels
Rescale the project using these settings:
  • deselect ‘Maintain aspect ratio’ and introduce the new dimensions
  • under ‘New Size is Larger’, select ‘Keep project the same size and position project Bottom Right; I choose this because the bottom bar and the right bar have the smallest dimension; you can choose another option if your smallest margins are elsewhere.

The result will look like this:


Step 3 (in Captivate)

 Rescale now to the final size, for this example to 1280x720 pixels, with settings:
  •  deselect ‘Maintain aspect ratio’ and introduce the final dimensions
  • under ‘New Size is Larger’, select ‘Keep project the same size and position project Center

After this rescale of the project it will look like this:

Step 4 (in Captivate): Master slides

 In the original blog post it was possible to create a master slide which is partially transparent, but that is no longer possible in the present versions with the Themes (new since Captivate 6).  Here is the master slide panel, where you see some master slides of the custom Theme 'Knockout' which I created:

I used the two imported PNGs from the Photoshop file to create:

  1. The Main master slide, where the FullTexture image is set as background image. You see the setup in the Properties panel:
  2. Based on that Main master slide, I created some content master slides. You see acouple of them in the master slide panel above (Title, Light). The Blank master slide always has to remain Blank, it is not using the Main master slide.
  3. The Knockout master slide. You cannot use the KnockoutTexture image as was done in the Main master slide, it needs to be a separate image as you can see in the Timeline and in the Properties panel. I added some objects and placeholders:

Step 5: Apply Knockout to simulation slides

Up till now the simulation slides used the Blank master slide. Change the master slide to the Knockout Master slide. It is very important that you do NOT check the option 'Master slide objects on top', because you'll lose the textured parts of the image.





Replay/Reset slide 2 (Captivate tutorial)

Intro

Recently I published a blog about what seems to be 'hot' topic: how to replay a slide, how to reset a slide. That blog didn't include an example file.

When coaching a training I often use Captivate tutorials, more than videos. This particular topic needs such an interactive approach, to allow to experiment, to get a 'feeling' of the difference between Replay and Reset (with or without an On Enter action). For learners I provide the cptx-file. Here I will only share the HTML5 published output. 

You will see that I borrowed design elements from the Quick Start Project 'Safety'. The interactions were created from scratch.

Content and Tools

After a short rehearsal of terminology and the step-by-step workflows you'll be able to see 4 different examples:

  • Slide 5  which is only based on the Timeline: staggered objects and effects. 
    The info button will show you the Timeline and a relevant part of the Advanced Interaction panel
    This slide is followed by a T/F quiz slide to check your observations.
  • Slide 7: click/reveal slide, using multistate objects. The info button shows you the same information as for slide 5
    This slide is followed by a MCQ slide with multiple correct answers, to check what you learned.
    Both quiz slides are Knowledge Check slides. If you want to cheat you can go back to the previous slide. Navigation by TOC is also possible. The TOC is in overlay mode.
  • Slide 9 : flipcard slide (with thanks to the QSP Alliance). Rather simple but worth seeing the difference between Replay and Reset.
  • Slide 10: Drag&Drop slide set up as Knowledge Check slide.

You may detect several techniques like Forced view, which need using some user variables. Quiz slides do not use the default two-step Submit process, but show a Continue button when the Submit button has been clicked. 


Tutorial

You can watch the embedded version, or use this link to play a scalable version. I recommend to use the link. The embedded version seems to have long loading times. 



Animations?

You may have missed animations in the tutorial. There is a reason. While it used to be possible to Reset an animation, that feature is broken in the version 11.5.1. At least for the animated GIF which I created. I have already been searching since a couple of weeks for a workaround without success. I will create an OAM as well, to check if has the same issues. Too bad, it was a fun animation:

Replay or Reset slide?

Update

For a hands-on experience, have a look at the recent post with a Captivate tutorial about this topic.

Replay/Reset Slide tutorial

Intro

A frequently visited post on my blog is ‘Replay (slide) button‘, which was published 5 years ago. Such a button is not available out of the box in Captivate.  In that blog I explain two possible scenarios. The second scenario will be close to what is explained in this new post as a 'Reset' scenario. Since some features have changed, time to refresh. I will focus here more in-depth on the difference between Replay and Reset.

Companion tutorial:  to make this textual post more 'visible', I created a Captivate tutorial, which allows you to explore the difference between Replay and Reset (with or without On Enter action) on several examples. It can also be considered a summary of this blog, since the content slides (and assessment slides) treat this topic Replay/Reset. This is the link:

Replay slide

Many years before I already posted a simple way to replay a slide as well, and often I see users still using this two-line advanced action (which could also be a perfect Shared action, without any parameter):

Expression cpCmndGotoSlide = cpInfoCurrentSlide – 1
Continue

Whether you need the command Continue depends on the setup of the slide. If you leave it out, the play head will remain paused at at the first frame of the slide.

The advanced/shared action is essentially a translation from a still older action. , where more system variables starting with ‘rd’ existed, allowing a simple action instead of the one shown above. Reason: besides the cpInfoCurrentSlide, there was a second system variable rdInfoCurrentSlide. The first one was meant only to show the slide number, and for that reason starts its index with 1. The rd variable, like most system variables, starts its index with 0. , The simple action was:

Assign cpCmndGotoSlide with rdInfoCurrentSlide

Common misunderstanding is that this action will also ‘reset’ the slide which is NOT the case unless for very simple slides. Main reason: the play head never ‘re-enters’ the slide. Re-entering the slide is necessary to restore the original situation, either automatically, and/or by having an On Enter action being done again.

Reset slide

Hope we use the same terminology. Reset slide to me is to restore the slide to the situation it had when you first entered the slide.  During the first visit of the slide lot can have been changed. Here is a not exhaustive list:

  • Some object, originally hidden are now visible, or the reverse situation: originally visible, now hidden.
  • Multi-state objects were changed to another state, both custom state or InBuilt state (think about the Visited state of a button).
  • Effects have been applied to objects or groups, which can have those objects being in a different location if the effect included a motion path.
  • Knowledge Check slides have been answered. I will not talk about regular question slides, because those cannot be reset on slide level, only on Quiz level
  • Drag&Drop slides set up as Knowledge Check slides have been answered. Same restriction for D&D slides setup as scored questions (quiz level needed). I hear you! You can add a Reset button to a D&D slide, indeed, but that will not reset everything if you used Object Actions.

Essential for resetting is to re-enter the slide, to have the playhead revisit the On Enter slide event. For some of the described items that will be sufficient, for others it will be necessary to add an action On Enter. I demonstrated this situation in the recent presentation at Adobe eLearning World. You can find the recording still online in this portal. I will explain how to re-enter the slide (2 workflows).

Re-enter Slide (workflows)

Two workflows are possible (explained only the second one in the old post, but it has failed at least in one of the more recent releases and pushed me at the first workflow):

Dummy slide

Easy workflow, step-by-step:

  • Insert a duplicate of the present slide before the present slide
  • Take out all interactive objects of that slide, it should not have pausing points.
  • If there is an On Enter action, delete it and get back to ‘No action’ or ‘Continue’ (same result)
  • Reduce its duration to 0.1 secs which is the shorted possible duration.
  • Attach this  action to the Reset/Replay button:

Go to Previous slide

The play head will rewind to the dummy slide and since it is so short almost immediately (re)enters the present slide.

Drawback: you increase the number of slides. That may be annoying if you show the number of slides (cpInfoSlideCount) and/or if you use the TOC (where you’ll have to hide the dummy slides). I started using this approach in a version where micro-navigation had problems in HTML5 oiutput.

Tip: to avoid annoying flickering in case of low bandwidth, prefer a similar look for the dummy slide as for the present slide. I mostly use a duplicate, taking out all interactive objects and actions.

Micro-navigation

It is bit more complex but avoids adding slides. Workflow:

  • Create a user variable v_start. It will be used to store the first frame of the slide.
  • Use the On Enter slide event for this command (eventually to be combined with other commands) 
         Assign v_start with cpInfoCurrentFrame
  • For the Replay button use this command:
         Expression cpCmndGotoFrameAndResume = v_start – 1
    The play head will rewind to the frame before the start frame of the slide, which is the last frame of the previous slide. Due to ‘Resume’ in this system variable of the Movie Control category, the play head will continue and re-enter the slide immediately.
    It may prove necessary to increase the '1' to 2 or 3 if you don't get the expected result. It is possible that the value of the first frame is one or two frames wrong. In most cases however it works fine.

The variable and the actions can be reused on all slides.

What is reset?

As mentioned before, some items will reset automatically when re-entering the slide by one of the described workflows. Here a non-exhaustive list from my experience:

  • Multistate objects: if you keep the default setup where ‘Retain state on slide revisit’ remains unchecked. The normal state will re-appear as in the first visit of the slide. I have some blogs around which use that as an alternative for a Show/Hide scenario.  Drawback: if you use the InBuilt state ‘Visited’ it will also disappear in this situation.
  • Knowledge Check slides:  will be completely reset, ready for a new attempt. 
  • Drag&Drop slides: are completely reset, including eventually changes to objects due to Object actions. That is not the case with the generic Reset button which can be added to such a slide.
  • Effects: as you know they can be added with three types of triggers. The easiest one, based on timeline will not need a Reset action, will be reset with a simple Replay action. However both the button triggered Effects and Effects triggered by an advanced or shared action need to re-enter the slide to have them reset to their original situation.
  • Text Entry Boxes:  if you change the value of the associated variable, that change is never visible right away but will now be correct after re-entering. Same for the variables of learning interactions like checkbox and radiobuttons. Not really ‘reset’, more of a ‘refresh’.
  • Web objects: they will be reset to the first web page, which opens with indicated URL. If you use Replay that will not happen.
  • Animations like OAMs

What is NOT reset?

  • Multistate objects: if you check the option ‘Retain state on slide revisit’ for the object.
  • Hide/Show: items that have been shown or hidden during the Play head travel in the first visit will remain in that status.
  • Enable/Disable: if this command has been used for interactive objects, they will remain in that state. I showed this in the presentation ‘Deep dive with Shared and Advanced Actions’ at the Adobe eLearning world conference: if you disable all interactive objects, the pausing points disappear and nothing will stop the play head.
  • Variable values: they will not be reset to their original value.
  • Score: if you have scored objects on the slide, the total score including this score will not be decreased.

How do you reset these items: by creating or editing the On Enter action. That is beyond the scope of this shorter blog. You can see multiple examples in some slides of the Quick Start Projects, or on my blog including the sample project I added to the mentioned presentation. I include that project here as well. Check the On Enter actions (and the consequence of missing such an action on the first slide).

Look out for a Captivate tutorial to illustrate the difference for several of the mentioned items. It will be published soon on this blog.


Game: using JavaScript in a Shared action

Intro

Last week I presented at the Adobe eLearning World 2020 “Deep dive into Captivate with Advanced and Shared actions’. I had prepared 3 different scenarios, to be ready for any audience. Due to the poll before the session I decided to go for the ‘newbie’ scenario because the majority was new to Shared actions, and a considerable amount of attendees even to Advanced actions. That means that intermediate and advanced users were perhaps disappointed. To remediate I plan some blogs and examples as illustration. This is the first one.

Javascript and Shared actions

It is possible to have the command ‘Execute Javascript’ embedded in a shared action. When talking about games, randomization is mostly used but not a ready-to-go feature in Captivate. In the session I showed a very simple board game where the tossing of a dice is simulated, and the board cursor advances based on the result of the dice toss. That was realized with one shared action.

This game uses random numbers as well. It is a memory game which can be used in many variations due to the flexibility of shared actions, variables and multistate objects.

Game

You will learn about the game rules in the game. There is an easy and a more complicated way to play the 3 games. Hope you don’t keep only the easy one if you are in for some memory training:

Play with the rescalable version using this link or with the embedded (fixed resolution) version:

Have fun!


Tips and Tricks: Advanced to Shared action (intermediate)

Intro

Recently i presented ‘Deep dive into Captivate with Shared and Advanced actions’ at the Adobe eLearning Word  202 conference.  During that presentation I used the ‘newbie’ scenario because the start poll pointed out that the majority of attendees were not really familiar with those actions. For the intermediate or advanced user, will try to post some blogs about tips which I would have included in my alternative scenario.  You may have seen the memory game which I published yesterday, and shows how you ca n include short JS scripts in the shared action.

The following tips are linked with my more than 19 years history of using Advanced actions, and 6 years with Shared actions. My viewpoints have changed quite a lot in that period. Presently my natural attitude is to reflect in most situations whether a Shared action is not appropriate. Why? One of the reasons is of course rIusability (with an external library), but even more important: it forces me to find better workflows. 

Throughout the presentation I used a demonstration project (include d here as well) FlipCard.   It started with an original slide from the Quick Start Project ‘Alliance’. I added two slides where the functionality of the original slide was extended  to have more functionality (toggle flipcard, forced view, reset of slide on re-enter). I used two different workflows for the Advanced action and the Shared action slides. Why? You’ll discover it below.

You can download the project file using this link.

FlipCard

Actions in the slides

Advanced interaction panel (F9) shows all actions on the 3 slides

Slide 1 (original from the QSP)

As you can see in the screenshot above, this slide has no action On Enter (normally meant to Reset), only   3 similar advanced actions for the flipcards. Those cards are shapes used as buttons, with two states: an image in the Normal state and the explanation in the Active state. Here is a screenshot of the advanced action for one flipcard:

The state Active is shown instead of the Normal state, a spin effect is applied and the shape button (flipcard) is disabled.  This means:

  • You cannot flip back to the image, because the shape button is disabled
  • Nothing happens when all flipcards have been flipped. Without a default playbar or adding a custom Next button, the learner will be blocked
  • When revisiting the slide:
    • the images will show up again, because the option ‘Retain state when slide is revisited’ is not activated
    • the shape buttons remain disabled, no clicking possible
    • which also means there is nothing to pause the slide, after moving throughout the duration (3seconds) of the slide the playhead continues to the next slide

 Slide 2 (extended Advanced actions)

To fix the issues of the first slide, the advanced actions used here look like this example:

This advanced action has two decisions. The changes in a nutshell:

  • The command ‘Go to state ‘Active” has been replaced by ‘Go to Next State’; this means that clicking act a s a toggle, since the shape buttons have only two states. It would also have been an advantage if this action was converted to a SA, one parameter less.
  • To track the clicks, a variable is needed for each of the flipcards, in this screenshot it is v_one. Its default value = 0, is toggled to 1 when the flipcard is clicked and that value remains 1. It is a so-called Boolean variable.
  • The second decision is conditional, checks the value of all the tracking variables and shows in this case a Next button.

When revisiting the slide, some issues are now automatically solved, but to have the slide behave completely like the first time, an action On Enter for the slide was used. 

That action will hide the Next button, and reset the tracking variables to their default value, 0.

Slide 3 (Shared Actions)

Many expected that I would convert the Advanced actions of the second slide to shared actions (at least for the flip act), but I used another workflow. If I use the Shared action ‘FlipAct’ as template for an advanced action for the first flipcard (as demonstrated in the session) it would have looked like this (Preview window):

That looks more complicated:

  • The command ‘Assign var with 1’ has been replaced by an Increment command
  • A new variable v_counter was added to keep track of the clicks. It is only incremented on the first click as you see in the second decision. For shared actions I don’t mind so much about needing more variables. Whe they are not defined as a parameters, they are created automatically when importing the action. Moreover this makes the last decision easier
  • since I need only to check the value of v_counter. Instead of comparing with a literal (which should have been 3 in the first project), another variable v_max was used which will be populated with the On Enter action. That will make the shared action more flexible. 

Result of this workflow is that only 3 parameters are needed for the shared action FlipAct:

For the Reset issue, I could have used an Advanced action, slightly different from the second slide. However I also converted it to a Shared action. Why?  When I drag that SA to another project, all variables (none are parameters here) will be created. For that same reason, I added some variables (here  7). This is a filled in action to be used On Enter, only the last two commands need a parameter. One of them is the number of flipcards (value fo v_max):

Not convinced?

For those who are not yet sure that the second workflow is better for shared actions, have converted the first Flip advanced action to a shared action. These would have been the needed parameters:

This is the situation if you have only 3 Flipcards. If you have 5 flipcards, you’ll will have 2 extra parameters: tracking variables.  The risk of missing to indicate the correct parameters when attaching the shared action to the shape buttons is much bigger than with the shared action I used in the third slide.

 

'Advanced Interaction panel' - Q&A

Why?

Some panels in Captivate are ‘under-used’, perhaps because they never show up automatically in the Newbie UI which is the standard after installing the application. You may have discovered the Branching view panel, but from what I hear on the forums the Advanced Interaction panel is much less visited.  Personally I use it very frequently, find it very useful (contrary to the Branching view) in many circumstances. Both panels will open as floating panel.

You have 3 ways to open the Advanced Interaction panel::

  1. By using the shortcut key F9
  2. From the Project menu which has Advanced Interaction as option
  3. As expected, since it is a panel, you can also open from the Window menu.

Although it looks like most l panels, it is a ‘passive’ panel. You cannot really edit an field in this panel, but that doesn't mean you have to skip reading the rest of the post. 

Exploration of the panel

Name of this pane can be confusing. It is not limited to information about Advanced Actions (often confused with interactions).Let us explore it in-depth.

Control bar

In the top of the panel you’ll see the control bar. of this screenshot.  I ‘translated’ the tooltips:

From left to right:

  • Next to view you see ‘All Scorable Objects. That label is not correct, because you can show not only scorable objects. This is a button, when you open the panel, default is the ‘pressed’ state. That means that all the filters (icons further on the bar) are selected. There is no way to deselect them all at once, has to be done manually. But if some or all of the filters have been unselected, pressing this ‘All Scorable Objects’ will activate all Filters. I really wished this was a toggle button to select/deselect all filters but that is not the case.

  • Next to ‘Filter by’ you have icon buttons,. The explanation is visible in the screenshot above. Those icon buttons are toggles. In the screenshot all filters are active with the exception of  two which I deactivated: 'Interactive Widget'  because since 11.5 there is no interactive widget (learning interaction) packaged with Captivate anymore, and Hidden Slides because I don’t have hidden slides. Two of the item categories in the filters can never be scored: Hidden slides and Hyperlinks. The other categories can be scored, but need not to be scored. Think about Drag&Drop slides which can be used as Knowledge Check slides. Same for Text Entry Boxes, buttons, click boxes. Knowledge Check and Pretest slides will appear in the same style as normal Question slides.

  • In the center you see ‘Total…x points’. Beware; this is the total of the scores of the items shown in the table using the filters. If you show only the questions, you’ll see the total score of the questions, but scores of  other scoreable objects will not be included. 

  • At the end you see three buttons: first will collapse all items to the highest level (which is slides), second will expand all items and the last allows you to print the table which can be useful.

Columns

Some of the column headings are confusing.  Let us start with a very simple state of the table, which can be supplementary to or an alternative for the Filmstrip. All filters are deselected in this screenshot (marked in purple). Advanced interaction panel is floating, you can resize it. This is the minimum size which is possible, the missing columns are not relevant in this status.

In this situation you see only the slides (top level item)… with the exception of the Question slides. The first column shows the slide numbers, the second the name if you edited the name. The missing slides 4-11 are quiz slides. It is a bit strange that the Results slide is showing. 

The column ‘Success’ heading is misleading. On slide level this column shows eventual actions triggered by the On Enter event.   The actions are identified: simple action (slide 1, 13), Advanced action  (slide 2) or Shared action (slide 3). 

The panel is dynamically linked to the Filmsbrip. If you click another slide, it will be selected in the Filmstrip and its Properties panel will appear. 

Similar the column ‘Failure is showing the actions triggered by the On Exit event of the slide.

When the filters of the first screenshot (control bar) are activated (sorry Hidden slides i added here, but is not relevant), this will be the result:

All objects from the filter categories are now visible, with their actions. The type of object is in the  second column. ‘Smartshape’ is a shape button, Image is a bitmap image used as button, SVG is a SVG used as button. I don’t have click boxes, TEBs nor Drag&Drop in this example.

When you select an object in the table, the dynamic link will result in the object being selected on the stage and its Properties panel popping up. A nice enhancements would be to have the Quiz Properties being selected when you choose a quiz slide. 

Success column shows the action triggered by the Success event in this case. It doesn’t matter whether there is a score or not.

“Failure” column is still not a correct heading for most instances. Only when the number of Attempts is set to 1 it will be a real Failure event. For attempts higher than 1, the name should be replaced by ‘Last Attempt‘ action. If the number of Attempts is Infinite, there will never be a Failure attempt, you can ignore that column.

Watch the other columns having an entry, they summarize the settings for scored items and quiz slides: score (Points), penalty (Negative score), whether the score is added to the Quiz total (default quiz slide’s score is always added, but not marked here), if they are included in the quiz and reporte (get interaction ID-. All settings of the Reporting section for interactive objects.

Missing

Advanced Interaction panel is fantastic. When using Drag&Drop slides the Success column will show the action ‘On Success’. When you have a limited amount of Attempts, the ‘Failure’ column will sow the ‘Last Attempt’ action. But if you are a fan of the Object Actions  (like me) you have to know that they will NOT appear in this panel. Maybe in a future release?

Use cases

Quiz result

A question often appearing in the forums ‘I have answered every question correctly, but I don’t have a score of 100%’. 

Answer; use F9 to open the Advanced Interaction panel. Check the total score on top (all filters are selected by default). Is that what you expected or is it higher? If it is higher look for other scorable objects in the Points column.

Working with Advanced/Shared actions

Having an overview of all events to which you have attributed actions is a time saver.  Moreover, due to the dynamic link, you can navigate immediately to a ‘suspicious event’.

Example 1: You have created some enhanced advanced actions to replace the present ones. To double-check if the replacement has been done for all the events, use this panel.

Example 2: After testing out an advanced action, you’ll replace it with a shared action. Did you not forget some?

Example 3: some slides do not reset on testing. Check if they have (or need) an On Enter action. Find the slide without On Enter action in this dialog box.

Example 4:  because your project now needs to be viewed on multiple devices and browser resolutions, you decided to replace all images used as buttons by SVGs. Filter on the buttons and you have a good overview of tthose image buttons (at least if you use a consistent labeling system).

Find the Twins - Game (Shared Actions)

Inttro

Looking back in my blog history, I remember very well the first Memory Game created 10 years ago (with version 5.5). It was quite an adventure, because I wanted to prove it to be possible without having to use ActionScript  (since only SWF output was available).

Now 10 years later, ActionScript has been replaced by JavaScript but  I still try to create games without having to use JS.  That is possible when randomness is not necessary as is the case for this game. However newer features like multistate objects, SVGs which can be used as buttons, and most important 'Shared Actions' make it a lot easier now. Kudos to the Captivate team!

Have fun with the embedded version (fixed size), or the rescalable version using this link



Extensions possible?

The structure of this game allows a lot of flexibility. The two challenges have a different total number of shapes. Shapes can be replaced by images to convert it into a kid's game. It is also possible to increment the number of pairs, or to make a search for trios instead of pairs.

SVGs  used as buttons have several advantages. You can limit the clickable area to the image, instead of to the bounding box. They remain crisp ion all devices, whatever the browser resolution.  Disadvantage is that they take a while to redraw, which you may have seen when the slide was reset. 

As you could read I used:

  • 3 shared actions.  one of them was used 30 times!  If you are not yet convinced about the value of Shared actions over Advanced actions, I will present about both on 24th of June in the  Adobe eLearnng World 2020 conference.
  • 2 advanced actions for the Reset action On Enter for the challenge slides
  • 4 variables




Game: test your logical mind!

If you have watched my course about Using Shared Actions, you'll already know that this is one of my favorite features. It makes it possible for newbies to create rather complicated tutorials without need of programming skills. 

I already uploaded a game recently, here is another one. You can use this link or play with the embedded one:


It was created with SVGs (thanks to Illustrator), one shared action, two advanced actions (which could be converted to shared actions as well), Drag&Drop features, multistate objects. The setup makes the game very flexible. In the example sequences were all with 6 shapes, but you can create them with any number of shapes. You would have to find a new indicator for the degressive score if you have more or less shapes. The adult version can be converted to a kid's game, by using easier sequences . Have fun!

Who is afraid of ... Shared Actions? Crash course - Lesson 2 (step-by-step)

Intro

You prefer step-by-step workflow for this second lesson over a video. Great. Let us start with this second lesson,  explaining how to use the shared actions from the first project in your project. Believe me: it is as intuitive as the first lesson.

Workflow: (re)Use shared actions in your projects

Step 1: Preparation

To follow this workflow, you need a project with at least two slides:

  1. Content on the first slide is not important, it is meant to allow you to test the project.
  2. Second slide needs to have these objects:
    • Two multi-state objects. Content is not important: audio, video, graphics, text or combinations in the states. Only requirement: same number of states in both objects (although you can have some identical states). They are labeled Container1/SVGContainer in the Timeline below.
    •  A shape or caption which will be used to insert the variable v_counter. You will insert the variable later on. Labeled SS_Counter in the Timeline.
    • Two navigation buttons: Next and Back. They are labeled SB_Back and SB_Next in my project (shape buttons)
    • A button to jump back to slide 1, with the action ‘Jump to slide 1’ or ‘Go to Previous Slide’. I used a SVG as button, labeled SVB_Home.

Here is an example of the Timeline of the project I use, the names are mentioned above::

If you are eager to start but do not have time to create a custom project, you can download this one:
Lesson2Start

Please do not use the SVGs from SVGContainer in your projects. They were extracted from a licensed AI file.

Step 2: Variables

Have a look at the variables, using menu Project, Variables.  The default view will show you the two user variables which are added to each project:

Step 3: Open External Library

Use the File menu, option Import, External Library. You have to point to the original project which has the shared actions on board.  In this case that will be the start project which you used in the previous practice; “SlideShow”.

The project will not open, but its library appears as a floating window in the left top corner of your screen. You will probably need to increase its height, and collapse the Images folder to see the Shared Actions folder clearly. 

You can use any object directly from this external Library in your project. I used the Home button (SVG). However for the Shared Actions, it is better to not use this method. It can be done if there is only one independent shared action, but in this example the three actions are somehow linked due to the used variables.

Step 4: Drag shared actions to project Library

Select the three shared actions in the external Library, and drag them to the project library. They will appear in that library with the Usage set to 0. Be sure to drag all the actions  at once. Reason:  they share some variables. which could lead to the creation of multiple instances of the variables. You will check this in step 5.

Step 5: Check variables

Use Project, Variables and… surprise! The variables used in the shared actions have appeared, including their default value and description

You can now insert the variable v_counter  in the text (see Timeline) SS_Counter, using the X button in the Properties panel, Character part.

The text will look like this:

…. $$v_counter$$

Beware: if you see more than one instance of a variable, it means that you didn’t drag ALL the shared actions at once. In that case, please delete the shared actions, delete the variables and retry Step 4.

Step….

You can now repeat what you learned in the previous lesson: drag the shared actions to the slide and to the navigation buttons, and choose a ‘value’ for the parameters.

Do not forget to test if everything is working as expected. Use F11, Preview HTML I Browser for the best preview.

More?

The step-by-step workflows described in this and the previous blog (or in the video and the next video to be published soon)) can be used for all the interactions in the Demo project, provide you have the shared actions. Not only for those rather simple interactions! It is also possible for more complicated projects like the Matchstick game, which I published recently, and for many more use cases.

I sincerely hope that at least some Captivate users will realize possibilities.  Ask an expert to design shared actions which can be used by any Captivate developer,  without having to dive into advanced actions, variables etc. .

I may post an 'epilogue' to this short crash course, listing up some Q&A. If you have a question to contribute, do not hesitate to post it in a comment.

Who is afraid of ... Shared Actions? Crash course Lesson 2 (video)

Preparation

In Lesson 1 you started from an existing project, which had created objects for the Slide show AND shared actions in the project Library. Topic of the lesson: workflow to attach the shared actions to a slide event (On Enter) and to buttons (Success event). Lesson ended with the proposal to create a personal project with two slides. First slide is a title slide with only a Start button (Go to Next slide). Second slide needs two multistate objects. Number of states is not important but has to be the same for both objects (you can have identical states if wished).  Two navigation buttons (Back and Forward) and a button to get back to the first slide and your homework is done.

For this video lesson you need:

  • The original project, which I provided in Lesson 1. If you lost it, here is another link (dropbox)
    SlideShow

  • Your project. If you are really lazy, you download my project as used in the video. Please, do not reuse the SVGs, they are created from a licensed Adobe Stock file. You can use them only for practice the video workflow.
    StartLesson2

Video

You will transfer the shared actions to your custom project, and reuse them.

After finishing the workflow, you can compare your result with 'Lesson2'