What is Branch Aware?

Intro

Branch aware feature appeared with Captivate 6.  I created a blog post to explain it, but I regularly meet users who are still unaware of its existence, or its possibilities. So I decided to refurbish that old post, and create a new example movie with CP2019. You have seen a first version of that movie in my recent post about localisation with CSV import. That post discusses the workflow to create quiz slides in different languages in the same project. The example did use the Branch aware feature, but some of the features were not fully localised: the score slide was the default score slide which is in English since I am using a version in that tongue.

In this post I will also talk a lot about the quizzing system variables. If you didn’t download my explanatory table yet, please do so. You’ll find a link in this blog post: Creative with Quizzing variables.

What is Branch Aware?

Look at the Advanced Interaction panel of the example movie. It gives you a lot of information, not only about the events and the triggered actions, but also about all scored objects, including question slides.

You see that the total score is set at 60 points, result of the 9 graded questions in the file. For each of those graded slides both the individual score and the penalty are shown. There are also 3 Survey slides, without a score. Those values are also stored in quizzing system variables:

  • Total score in cpQuizInfoTotalQuizPoints
  • Score per question in cpQuizInfoPointsPerQuestionSlide (reusable variable)
  • Penalty per question in cpQuizInfoNegativePointsOnCurrentQuestionSlide (reusable variable)

If you don’t activate the option ‘Branch Aware in Quiz Preferencesn Settings (see screenshot later on), the default score slide will show 60 as maximum score. If the learner takes only one branch (language) of the quiz, the percentage (cpInfoPercentage) will be calculated as the obtained score (cpQuizInfoPointsscored) divided by that maximum score of 60. Same with the number of correct answers and total number of answers. This means the learner would be very confused, and never succeeds in that case. Reason is that those system variables are fixed when the course starts, I label them as being ‘static’.

When turning on Branch Aware, the system variables become ‘dynamic’, they will be changed on runtime based on the branch, thse slides visited by the learner. In this example movie that has been my choice: if the learner succeeds in one branch (maybe Dutch) the maximum possible score will be changed to 20, the percentage will be calculated with that maximum and the obtained score and the learner will see correct data on the score slide, can reach the passing score. No problem if a trilingual learner did visit the three branches, since the variables are dynamic, he will be judged on the maximum score of 60. This is the setup of Quiz Preferences, Setting for the example movie:

Example Movie

Play

Setup Project

The project has 16 slides: Title slide, Dashboard slide, 3 groups each with 4 questions, the default score slide and a custom score slide. This is the Filmstrip, I expanded the group ‘Dutch questions’:

Dashboard slide (slide 2)

I will not explain the effects on the dashboard slide, where I used a loop action (While) triggered by the On Enter event.

I created a user variable v_all The four buttons on this slide trigger a shared action which has two parameters: which value has to be assigned to the variable (1=All, E=English, D=Dutch, F=French) and the slide to jump to. Here is the instance for the button ‘Nederlands’ (Dutch):

Start slide of question groups Dutch/French

On all quiz slides a shape is displayed with info about the obtained score and correct answers so far. That shape, labeled SS_Info is a multistate object. In the Normal state the English version is displayed, there are two more states:  Dutch and French. Switching to the appropriate state is done with the On Enter event of the start slide of the Dutch and the French group. It is a simple action:

Because the project is pure linear, and there is no opportunity to go back, this setup is sufficient.

Last slide of each group (Survey slide)

The event ‘After Survey’ is used to navigate to the appropriate score slide. For the learners who did take the three branches, the default score slide (ScoreDefault = slide 15) is used, for the others the custom score slide 16. The same advanced action ‘LastAct’ can be used for the last slide in each group. If that last slide was a normal quiz slide, not a Survey slide, the same action could be used but for both Success and Last Attempt events.

Custom Score slide (16)

On this slide I used several multistate objects: where I added two states (Dutch/French) to the Normal state which has the English text. The On Enter event of this slide is used to trigger this action which will take care of showing the correct language information, and of the appearance of the Tropy image if the learner has passed.

One warning: the maximum score on the custom score slide is not created by using a system variable, but typed in (can also be calculated, as I explained in an older post about intermediate score slides). The variable cpQuizInfoTotalQuizPoints will not have changed from the original 60 points which took into account all quiz slides. It is strange because cpInfoPercentage where that maximum score is used, is correctly displayed as is  cpQuizInfoPointsscored.

Conclusion

I know that more improvements are possible, but blog post is already pretty long. If you really want to show a custom progress indicator on the quiz slides, maybe you’ll find some inspiration in this old post. 

If you allow backwards navigation, even give the opportunity to choose another branch on the dashboard, there will be some more editing needed. This article was meant to explain what happens when using the Branch Aware feature. Hope it helps some people.

The post What is Branch Aware? appeared first on eLearning.

Comparing Knowledge Check and Quiz Slides

Intro

Knowledge Check Slides have been introduced as one of the new quizzing features with version 9. The Help documentation is ‘spartan’ as usual. You can read this as Features (quote from the Help):

  • Knowledge check slide imbibes similar features of question slide without any results, reporting structure and interaction ids. 
  • Knowledge check slides do not participate in reviews. 
  • Random questions are not applicable to this knowledge check slide. 
  • Master slide and controls usage is similar to question slide. 
  • Knowledge check slides can be used to impart the learning on specific topics. 

I explored those KC slides in preparation for a workshop about new Quizzing features, and want to give you some more tips. Since the KC slides are very similar to normal quiz slides, I’ll start with ‘Recognizing KC slides’. Then I’ll show the differences in default setup, and in some other aspects not mentioned in the Help,  the relationship with the quizzing system variables and – what did you expect? – a tweaking tip.

Recognizing KC slides

This is possible in different locations:
    • in the Filmstrip, KC slides get a special indicator at the bottom right, which the Quiz slides do not have; in this screenshot slides 1&3 are KC slides and have that indicator:
    • in the Quiz Properties panel you see more differences with normal quiz slides, most are due to the fact that KC slides are not scored by default:

The mention (KC) next to the type of question
The lack of the possibility to choose between Graded and Survey (because KC slides are not scored)
No partial scoring for MCQ slides with multiple correct answers
No points
No penalty

  • in the Advanced Interaction panel you don’t see a specific indicator. The score of the KC slides is set to 0,  they are not set to be reported but… contrary to what the Help tells, the KC slides have an individual Interaction ID. This is probably not used. Look at this screenshot:

There is no way to convert a KC slide into a question slide, nor a question slide into a KC slide!

Default setup KC slide

The default settings for a KC slide are bit different from those for a question slide:

  1. For a KC slide only the Incomplete feedback message is activated, not the Correct message as for Quiz slides
  2. For both KC and Question slide only the Submit button is checked off. The Back, Skip and Clear buttons can be activated, but they are not by default.
  3. Attempts are set to Infinite, with the Retry Message enabled. For question slides by default Attempts is set to 1. Because the attempts are set to infinite, you don’t have a Failure message enabled for KC slides. You can decrease the attempts and in that case you can provide up to 3 Failure message, same as for Question slides.

You read in the Help that KC slides will not be visited during Review, they are not in the Quiz scope, except of course if they are nested in between normal quiz slides. Contrary to Pretest slides, the KC slides will not prevent navigation by playbar or TOC.

It is not possible to use question pools (see Help), random questions but it is also not possible to use GIFTformat to import KC slides.

Some options in the Quiz Preferences do work for KC-slides: if you check the option to Hide Playbar in Quiz, this will be valid both for question slides and KC slides. Unchecking the option ‘Allow Backwards Movement’ will only prevent backwards movement on question slides, not on KC slides. However, KC slides do not get a Progress indicator! IIf you want a progress indicator (question X of Y) you can have a look at this older blog post..

When you leave a KC slide, it is reset immediately which is not the case for question slides which are frozen until a new attempt on Quiz level is started. In that way a KC slide behaves like a Drag&Drop slide that is not set to be reported, had no score. There is no possibility to freeze the answer on a KC slide, which may be a game stopper sometimes.

As the Help mentioned, design of the KC slides depends on the same master slides as the normal question slides, with the exception of the new Review buttons which will never appear on KC slides. For navigation on KC slides you can use the Back/Skip buttons or add custom shape buttons.

System variables

Contrary to the Pretest slides, there are no specific system variables available for Knowledge Check slides. I have been looking for quizzing system variables that do get a value from a KC slide. Here is an overview of the variables that are not used by KC slides:

  • cpInQuizScope and cpInReviewMode, both Booleans will not be toggled from the default ‘false’ to ‘true’ when you enter a KC slide. If the KC slide is in between normal question slides, it can be ‘true’ but that is not due to the KC slides.
  • Variables linked with scoring are not used: cpInfoPercentage, cpQuizInfoLastSlidePointScored, cpQuizInfoNegativePointsOnCurrentQuestionSlide, cpQuizInfoPassFail, cpQuizInfoPointsPerQuestionSlide, cpQuizInfoPointsscored, cpQuizInfoPartialScoringOn, cpQuizInfoTotalProjectPoints, cpQuizInfoTotalQuizPoints 
  • cpQuizInfoAttempts: gives the attempts on Quiz level, as specified in ‘Quiz Preferences, Pass or Fail’. Those attempts have no sense for KC slides, since the user can come back as many times as he wants to retake the KC question which is always reset when leaving the slide.
  • cpQuizInfoPassPercent and cpQuizInfoPassPoints: since KC slides have no score, those settings of the Quiz Preferences have no meaning for KC slides.
  • cpQuizInfoTotalQuestionsPerProject: contrary to the Pretest questions which are counted in this variable, as are the normal Question slides, the KC slides are not included in this variable. Same for the variables cpQuizInfoTotalCorrectAnswers, and cpQuizInfoTotalUnansweredQuestions

As you see not many variables are used by KC slides, but some are used! Moreover they can be very useful if you want to do more with KC slides:

  • cpQuizInfoAnswerChoice: one of my favorites as you could read in this old blog postIt can be used to tweak the work flow with KC slides as you’ll read more later on. One exception: it is not populated when you use Advanced Answer option.
  • cpQuizInfoMaxAttemptsOnCurrentQuestion: can be useful as well, although having a similar system variable to cpQuizInfoAttempts for current attempt on question level would be even better. You need a user variable as a counter for attempts on question level. If you keep the default setting of Infinite attempts, this variable will have the value 32767 (no idea why?).
  • cpQuizInfoQuestionSlideTiming and cpQuizInfoQuestionSlideType are available for KC slides as well.

For an overview of all quizzing system variables, including a free table to download, check: Creative with Quizzing System Variables

Tweaking tips

Here are some tips, which I tried out with success but will not explain in detail.

  1. If you do not want to keep the Attempts set at Infinite, but to a limited number it would be possible to count the number of correctly answered KC slides. Create a user variable v_counter with a default value of 0. Use the Success action of the KC slides to increment that counter. Later on you can show the obtained value for v_counter, and even use that value in a conditional action to offer feedback or navigate the user back to content slides.
  2. There is no Review possibility for KC slides as mentioned. If you offer limited attempts on question level, you could show a custom feedback message on the KC slide for the questions answered correctly, something like ‘You have answered this question correctly’. When simulating a ‘Review‘ situation, the user will be invited to answer only the KC questions that do not show that message. Be careful: all embedded question slide objects are always on top of the stack, you don’t want the feedback to be hidden by those objects. That can be done by having a shape before the KC slide, timed for the rest of the project and always on top. This tweaking work flow was described in this article: Buttons on Question/Score slides?
  3. The use case described in this thread of the Captivate forums could be solved using the same system variable cpQuizInfoAnswerChoice in conditional actions, combined with a counter to track the number of attemptsl. You cannot leave a normal question slide to a content slide for remediation unless you follow the strict rules for remediation. If you want to limit the attempts to get a correct answer, remediation rules are broken. With a KC slide, the answers are reset every time, which allows a lot more freedom. However: if you need a real score for the slide, you’ll have to use the workaround I described in this blog post: Report Custom Questions – part 2
  4. All features of the KC slides are also available in a responsive project developed with Fluid Boxes. Check this blog post about the setup of quizzing master slides in Fluid Boxes

The post Comparing Knowledge Check and Quiz Slides appeared first on eLearning.

Forced Clicking Hotspots in Fluid Boxes Project

Intro

A couple of weeks ago I proposed two workflows for a common use case: learner has to click a number of hotspots which show explanations before being able to continue in the course. That example was for a non-responsive (maybe rescalable) project. If you missed it: Comparison Workflows for Hotspots

At the end I promised a follow-up article discussing how this can be realized in a responsive project, developed with Fluid Boxes. I will use exactly the same example, same variables (use both my custom theme and a shared action to get them quickly into the Fluid Boxes project –  see Shared Actions Tips).

Preparation – Changes

The shape buttons (arrows) used as hotspots had 4 InBuilt states in the original article. I want to use as much normal fluid boxes as possible. For that reason I have to simplify the Visited state where originally I added a checkmark image. This is not possible in a normal fluid box. The new object states look now like::

Object States Hotspot Fluid Boxes

Show/Hide Workflow – Changes

In the original file the text shapes containing the explanation when a hotspot is clicked, were grouped and stacked in the same location. Grouping allowed to simplify the actions. Each action had the Hide Group command, before showing the appropriate text shape. Two parts of the workflow are impossible in a normal Fluid Box:

  1. Grouping cannot be used. The consequence is that you’ll need to have a command line for each text shape to be hidden. In this example, where only 3 hotspots are used, that is not too bad but it is getting worse when the number of hotspots increases. The advanced actions FlashAct, ThemeAct and ActionAct have to be changed as well as the action On Enter.
    FlashAct (F<img src=” />Enter action for Show/Hide
  2. It is impossible to have objects stacked in the same location. For that reason I marked the Fluid box which will have the text shapes as being static. That is not a very nice workaround. Although I marked the Height and Width of the shapes to be 100% and 90% of the size of the Fluid Box, that setting is not honored, the shape will shrink a lot more for smaller screens, because the width/height ratio of the FB is kept.

Multistate Workflow – No Changes!

Great news! No changes are needed for the Multistate workflow, it works perfectly in a Fluid Boxes project. I didin’t even have to change the fluid box with the multistate object in a static fluid box. You have of course to be careful not to add objects to the states of the object, because no stackng is allowed.

Conclusion is clear to me: avoid the good old Show/Hide workflow when you are working with Fluid Boxes. You have a much nicer result using a multistate object.

I will insert a link to the responsive project for those who want to help testing it on mobile devices. Let me know if you are interested?

The post Forced Clicking Hotspots in Fluid Boxes Project appeared first on eLearning.

Force Clicking Hotspots: Comparison 2 Workflows

Intro

 This post is created in CP2017  but most can be done in CP9 as well.
A learner has to click several hotspots. Those hotspots reveal extra information such as explanation, images, video…. Moreover the clicks on the hotspots are tracked, because something has to happen when all of them have been clicked at least once. The clicking is not in a forced sequence. That ‘something’ could be the appearance of a Next button, a congratulation message etc… I have answered with a solution to such a situation multiple times. Although I have such use cases on my personal blog, thought it was time to summarize how this can be done in the present version.
There is third workflow, using Drag&Drop, not included in this post.
Focus will be on non-responsive projects. Both workflows can be transferred to a responsive project developed with Breakpoint views. Situation is different for Fluid Boxes workflow, will be explained in a future article.

Example movie

Watch this short (rescalable) interactive movie. In between the Title and End slides, you’ll have two slides that look identical, but the first was developed using the (older) workflow Show/Hide, while the second uses a Multistate Object.

Play

Common preparation

Sequence to click the hotspots is not imposed. For that reason tracking the clicks cannot be done using a counter variable.  I created one user variable (Boolean type) for each of the hotspots. A Boolean variable is a variable that has only two possible values: True/False, Yes/No or…. what I mostly use 0/1. The user variables have a default value of 0. Once a hotspot is clicked the value will be changed to 1. In the above example  3 variables were needed:  v_Flash, v_Theme, v_Action. I will reuse them for both slides, the one with the Show/Hide workflow and the one with the Multistate object.  You’ll see how this can be done by a Reset action On Enter for the slides, also useful if you want to give the opportunity to revisit the slide.
The hotspots are shape buttons (arrows). I didn’t use the old Show/Hide workflow to indicate that a shape button has been clicked, but used the Visited State, InBuilt state which can be created for all buttons, including Shape buttons. Here is a screenshot of the Object states for the first hotspot SB_Flash:
Object states Hotspot

Show/Hide Workflow

Timeline of this slide is visible in this screenshot, watch the grouping of the (3) Text shapes:

The action triggered when clicking a hotspot (in this case FlashAct for the shape button SB_Flash) has two decisions. Watch the Preview:

The first decision (standard) hides the group with the text shapes, shows the text shape needed for this hotspot (here SS_Flash) and toggles the value of the associated tracking variable (v_Flash). When duplicating the action (see Advanced Actions Outfit) only the Shape text and the Variable have to be changed for the other hotspots.

The second decision (conditional) checks the value of all tracking variables, and if all hotspots are clicked shows the Next button. This decision is the same for all hotspots.

To allow multiple visits to the slide, you need to create an On Enter action that will restore the original situation. That action (standard) is easy to understand:

Multistate object workflow

The timeline of this slide has less lines:

All texts are now in a state of the multistate object SS_Multi. The Normal state of that shape has no fill (Alpha=0) and no stroke. It looks invisible to the learner.
The action triggered by the hotspot (ThemeActBis) looks very similar to the one in the first workflow:
In the duplicate actions, only the state and the tracking variable have to be edited.
On this slide another On Enter action is needed to reset the slide. Because the Normal state is automatically reset when revisiting the slide (Retain state remained unchecked), no need to reset the Multistate object. The action is shown in this screenshot:

Comparing?

Show/Hide workflow

The text containers can have hyperlinks, which is not possible in states of a multistate object. When grouping the texts, even for more than 3 hotspots, the advanced actions are not that complicated.

However, as shown in the last slide of the example movie, the situation become much more complicated when you want to show more than just text, when you want to show multiple itemsi The grouping will then have to be done for each hotspot.  This will complicate both actions. I’ll show the example of 5 hotspots, each having to show a group of items:

  1. Action to be triggered by a hotspot : instead of having two commands ‘Hide Gr_Text’ and ‘Show TextX’ you’ll need 6 commands:
    Hide Gr_2
    Hide Gr_3
    Hide Gr_4
    Hide Gr_5
    Show Gr_1
  2. For the action resetting the situation the ‘Hide Gr_Text’ will have to be replaced by 5 Hide commands.

Multistate Object workflow

Disadvantage is that you cannot have a hyperlink (nor an inserted variable) in a state.

As for the actions to be used both for Hotspot trigger and for resetting the slide On Enter: the present actions can be used, you only have to add the multiple items to the proper state.

The post Force Clicking Hotspots: Comparison 2 Workflows appeared first on eLearning.

About Slides and Frames – Intro to Micro-navigation

Intro micro-navigation

Recently I presented two sessions about the Timeline at the Adobe eLearning Conference in DC (25th of April 2018). Maybe you did read a previous post, where I offered some easy Timeline Tweaks, taken from the first presentation ‘Demystifying Captivate’s Timeline’ which was aimed at clarifying basic features of the timeline, including the different ways of pausing the timeline. The second presentation ‘Mastering Captivate’s Timeline’ plunged deeper into exploring advanced workflows, including use of variables, advanced/shared actions and…. micro-navigation. I created that term in this (old) article. The word has been adopted by many Captivate users. Time to upgrade this article to integrate the changes within newer versions (system variable names) and the switch from SWF to HTML output. If you have a look at that article, please use a Flash Player enabled browser to watch the embedded interactive movie (SWF).  The present post can be considered as an introduction to ‘micro-navigation’.

Slides versus Frames

Slides

You, Captivate user,  are aware of slides and master slides. Slides appear in the Filmstrip and each slide is based on a master slide Master slides have a dedicated panel, which looks very similar to the Filmstrip. In the Newbie UI when activating the Master Slide panel it will replace the Filmstrip in the left docking station. The Timeline panel can be used both for slides and master slides. Timing (horizontal scale) itself has no real meaning for master slides,  panel is used to change the stack order (or z-order) of objects. If you insert a shape button having a pausing point on a master slide,  pause will be visible at the end of the timeline.
For sure you have used navigation commands for slides. In the dropdown list of the Actions tab for any event (slide event, interactive object event) or hyperlink navigation commands are available. They allow you to override the default navigation. ‘Default navigation’ means when the playhead reaches the end of a slide it will automatically move to the next slide.
The slide navigation commands are:
  • Go to the next slide
  • Go to the previous slide
  • Jump to slide …
  • Go to last slide visited
Maybe you are not aware of the availability of dedicated Shape buttons in the Shape thumbnail dialog box, that have an advanced action to go to the Last slide or the First slide of a project?
Also less known are the system variables from the category ‘Movie Control’  related to slide navigation. They be used in actions:
  • cpCmndGotoSlide  can be used to replace the simple command ‘Jump to Slide’; beware: index starts with 0, whereas the index of cpInfoCurrentSlide starts with 1 (exceptional to make it possible to use in a progress indicator). If you want to restart a slide without re-entering the slide, you can use “Expression cpCmndGotoSlide = cpInfoCurrentSlide – 1”
  • cpCmndNextSlide  is a Boolean variable with a default value of 0. With ‘Assign cpCmndNextSlide with 1″ has the same result as Go to the next slide
  • cpCmndPrevious is a Boolean variable with a default value of 0. With ‘Assign cpCmndPrevious with 1″ has the same result as Go to the previous slide

Frames

A published cptx-file (to HTML or SWF) is an interactive movie. Each movie ‘(and animation’ plays at a certain speed, the ‘professional’ name for that speed is ‘Frames per Second’ rate, or FPS. The quality of a movie depends on the resolution but also on that FPS number. The default FPS for a published cptx-file is 30FPS. You can see this rate in the Project Info panel.

It is possible to change FPS rate in Preferences, Project Publish settings.

With the default rate (30), each second on the timeline has 30 frames, the smallest unit on the timeline  (0,1sec) 3 frames.  I use the word micro-navigation for navigation between frames. Contrary to the navigation to slides, there are no commands available for micro-navigation. It is only possible using advanced or shared actions which allow you to manipulate the system variables available for frames. The relevant frame system variables are:
From the category ‘Movie Information’
  • cpInfoCurrentFrame: your best friend when exploring Captivate’s timeline, debugging projects with advanced actions, micro-navigation etc. You’ll find that variable inserted in a text container quite often in my tutorials. You can watch an example in this interactive movie
  • cpInfoFPS: returns the FPS rate, by default set to 30 as explained above. This variable can be used in calculations (with Expression) to convert from seconds to frames.
  • cpInfoFrameCount: similar to cpInfoSlideCount (total number of slides in project) it returns the total number of frames in the project. It can be used in combination with the previous variales to calculate to the total duration of the project (as shown in the TOC).
    From the category ‘Movie Control’
  • cpCmndGotoFrame can be used to jump to a frame using its frame number (similar to cpCmndGotoSlide); playhead will not be released, project remains paused.
  • cpCmndGotoFrameAndResume can be used to jump to a frame using its frame number and to release the playhead at the same time, project will continue.

Testing?

It is just a proposal: test out what you learned by creating a one-slide project, similar to the one visible at the start of this post and as thumbnail.  Design is up to you, but this is required for the ‘exercise’:

  1. Replace ‘No action’ for the On Enter event of the slide by ‘Pause‘; the slide shouldn’t start playing automatically.
  2. Insert the system variable cpInfoCurrentFrame in a text container (example has it bottom right); that will allow you to track the location of the playhead. When starting the slide it will pause immediately, it will show 1 (although the system variable starts with 0, there is a small delay).
  3. You need two buttons: one for navigation forward, and one for navigation backwards. I used two shape buttons from the category Buttons, but replaced the action (see below). In the example they are at bottom center.
  4. A number of objects staggered on the timeline. In the example I have 7 shapes aligned in a row. They appear 1 second later than the previous one. All objects are timed for the Rest of the Slide. Result will be that the slide itself will have a duration that is longer (8secs in my case). To move an object on the timeline one second to the right: select the timeline of that object and use shortcut key CTRL-right (see Colors and Keys for Timeline). Here is a screenshot of the Timeline in my example:
    You see a small gap (0,1 sec) before the first object. Reason is the delay I mentioned before: playhead is stopped at frame 1, I don’ want that shape to appear immediately. Because this is a one slide project, I didn’t need to pause the slide at all, not even at the end. Both buttons have no pausing point as you can see in the Timeline.

Three events are used on this slide for actions:

  1. I already mentioned the On Enter event of the slide, which is set to ‘Pause’.
  2. The button SB_Next triggers a one-line advanced action that should look like this:
  3. The button SB_Back triggers a one-line advanced action that should look like this:

Test! You’ll be ready for more advanced workflows with micronavigation. Watch out for a shared action that can be used in different situations: forcing full view of a slide on first visit, but not on later visits is one of the use cases.

The post About Slides and Frames – Intro to Micro-navigation appeared first on eLearning.

Intro to Shared Actions

Interactive presentation (webinar)

Last week I presented a webinar ‘Dare to Share: Power of Shared Actions’ for a pretty big crowd.  As usual I presented using a Captivate presentation, since I don’t feel it to be appropriate to use Powerpoint when Captivate has so much more features. One of the advantages is that I am able to convert that presentation in an interactive movie. If you did miss the webinar and did not register to have access to the recorded versions, you can watch this movie using this link:

Shared Actions

It is Rescalable HTML5 output, you can also watch it on mobile devices, but only in landscape mode.

Content of Presentation

Five topics in this presentation:

  1. Importing and using a Shared action
  2. Creating a Shared action (two workflows)
  3. Parameter types
  4. Using a Shared action as a Template
  5. How to choose between Shared and Advanced action

The presentation itself is using a lot of shared actions as you’ll be able to see because I included these screenshots under the ‘Information’ button:

  • To create a dashboard
  • To deactivate an interactive object after all has been viewed
  • To create toggle buttons
  • To skip audio when a slide is revisited
  • In a Drag&Drop slide to show Feedback for each drag action.
  • ….

A lot more is possible with Shared actions to replace Advanced actions and make it easier to transfer the scripts to new projects for reusing. A typical example are custom question slides of all types (not only MCQ). To attribute all fhe functionality of the default question slides to those custom question slides, it takes a lot of work creating the actions. By reflecting on the setup you can create shared actions that can be easily reused not only in the present project but in all your future projects.

Invitation

Some of the mentioned examples will be published in a later blog post. If you want to learn more about Shared actions, which are a lot more flexible that the older advanced actions, send me a note. I am preparing several booklets. One will be  about  Shared Actions. Those booklets can be used as cookbooks, with recipes but also offer in-depth information about the topci.

The post Intro to Shared Actions appeared first on eLearning.

[Webinar] Dare to Share: Power of Shared Actions

If you have seen some of my use cases or tutorials, you are aware of the fact that I am a big fan of Shared and Advanced actions. Advanced actions are part of Captivate since version 4 and made it possible to extend Captivate’s functionality in many ways.  Their release was the reason I started blogging to show how easy it is to  create engaging courses without the need of learning a programming language. You just use the point-and-click interface of those actions, which are converted to a programming language on runtime.

With Captivate 7 Shared actions were included, a more flexible alternative for Advanced actions. The main goal of those shared actions is reusability!  That reusability is due to the presence of parameters, which can be filled in on assigning a new instance of the shared action to an event. Shared actions will be listed up in the Library, the same way as other assets. As I explained in the blog post Library? Which Library you can open the library of any project in a new project, and drag the assets in the library of that new project. That is also the case for shared actions. Captivate 8 extended the functionality of shared actions by adding the possibility to define variables and literals as parameters.
Poster

Shared actions can also be used as templates for new advanced (or shared) actions, a feature that is not very well known but very useful as well.

If you want to see shared actions ‘in action’, you can register for this webinar, organized by the eLearning Brothers on Thursday, 15th of March,  4pm CET (8am PT). You are welcome to get lot of tips from a user addicted to shared actions. Registering is possible using this link:

Dare to Share

Be sure: you’ll walk away with many creative ideas!  As a plus: you’ll be working in the brand new Advanced Actions dialog box of Captivate 2017.

Shared Actions in Drag&Drop

Why?

Shared actions were a new feature in Captivate 7 and were improved in Captivate 8. Nevertheless I rarely see examples of shared actions, and there is also lot of misunderstanding.  Some users think they can only be reused in other projects. I did see experts claiming that they are totally useless, that it is much easier to duplicate advanced actions. I don’t agree with that opinion, about 90% of all the project I have developed do include shared actions. They are especially useful for responsive projects as well. In a recent article you can find links to tutorials about shared actions.

A problem that still remains is that you cannot edit an existing shared action, had hoped that would have been solved in 9 in a recent version but it didn’t happen. The reason is probably that since they are not much used, this improvement doesn’t get on the priority list. If you want to learn more about how to create shared actions and see some examples, have a look at this recent article in which I summarized several older posts. This post is a showcase, where I’ll try to explain when to use a shared action, and when you cannot use them. The origin of this showcase is due to this question in the forums. The answer I gave there is working, but has a serious drawback, I will explain both this first simple answer, followed by a second version that will work in all situations. I hope you learn from that workflow: test out all possible situations, even though they seem to be improbable. As a trainer/coach never underestimate how trainees will explore courses.

Problem

User did look for a solution to apply to this use case:

  • Drag&Drop slide with two drag sources and two drop targets
  • Each drag target should accept only one drag source
  • Depending on the sequence of the dragged items, one out of two texts should appear.
  • Learner can switch the drag sources
  • Auto submit for the answer.
  • Slide needs a reset button

Example movie

It is not possible to embed an iFrame here, you will have to use this  link to see the two proposed solutions.

You can test the problem with the first solution as well. Everything works fine if you switch only once, like first dragging the First text to the Top target, than drag the Second text to the Top target. However if you switch a third time, First text to the Top target, you’ll see that the functionality is lost. This will not happen with the second solution

Setup Drag&Drop slide

The setup is the same for both solutions. Drag sources are shapes and labeled SS_DragOne and SS_DragTwo. The shapes acting as drop targets are labeled SS_DropTop and SS_DropBottom. The feedback will appear in another shape SS_Feedback, which has 3 states: Normal, OneTop (first scenario with SS_DragOne in SS_DropTop) and TwoTop (second scenario (SS_DragTwo in SS_DropTop).

Since Auto Submit is turned on in the Actions tab of the Drag&Drop panel, I dragged the Submit button out of the way to the scratch area.

That means that both possible answers have to be defined as Correct answers. This can be done with the button ‘Correct Answers’ on the Options tab of the Drag&Drop panel.

Each drop target should accept only one drag source, but the learner can switch them if wanted, as long as no correct answer has been defined. For that reason editing the dialog box ‘Accepted Resources’ is necessary, because the default setup is that each Drop target accepts all drag sources. This dialog box can be opened from the Format tab of the Drag&Drop panel, when a drop target is selected. It has to be repeated for both targets. Rest of the setup like snapping behavior is not important for the rest of the workflow, do what you like.

First solution

This solution is using two variables: v_first and v_second. They are related to the first scenario (SS_DragOne in SS_DropTop and SS_DragTwo in SS_DropBottom) and the second reverse scenario. Default value of the variables is 0.

I used the same shared action for all object actions, for both targets. It is pretty simple, conditional with one decision. It has three parameters:

  1. First parameter is the variable associated with the scenario, v_first or v_second.
  2. The multistate feedback object is the second parameter
  3. The state to be shown, which fits the scenario is the third parameter.

This was the original idea:

  • When the first drag action occurs, it fits into either scenario 1 or scenario 2; the appropriate variable is set to 1.
  • If the drag source is replaced on that same target nothing happens.
  • When the second drop target is filled with the other drag source, it has to be in the same scenario. Checking if that associated variable has a value=1, means that both targets are filled, and the feedback is shown, depending on the scenario variable.

What is the problem with this action? It works fine until the user changes the object twice on the first target: in that case the feedback will be shown to early. That was the reason for the second solution which does avoid this problem.

Second solution

Besides the two scenario variables, a third variable to track the number of drag actions was created: v_counter. It started also with a default value of 0. The shared action now has 3 decisions as you can see in this Preview:

The first decision ‘Always‘ is a mimicked standard action. The increment command for both v_counter and the associated scenario variable (v_first or v_second, depending on the object action) will always be done.

The second decision ‘Complete‘ checks if both targets are filled, which is the case when both v_counter and the associated scenario variable have the value = 2. In that case the correct feedback is shown (similar to first solution).

The third decision ‘Incomplete‘ is the one that solves the problem with solution 2. If there has been 2 drag actions (v_counter is equal to 2) but the associated variable for the active object action is still set to 1, that means that the user has switched the drag sources on one target two times. In that case the variable for the other scenario (which probably has already a variable different from 0) is reset to 0.

It is not necessary to define v_counter as parameter, since it will be used as counter whatever the scenario. This action needs 4 parameters, because both v_first and v_second are used in the action; whereas in solution 1 only one of them was used..

Reset

This is not the default Reset from Drag&Drop, because it will not reset the variables nor the state of the feedback container. I used the usual workaround (micronavigation as explained in ‘Replay Slide‘ is not possible yet due to a HTML5 bug in CPwhere the On Enter action is not executed) to reset the variables and that feedback container. Two dummy slides with a duration of 0,1sec are inserted: one before each D&D slide. The reset button triggers the command ‘Go to Previous Slide’, thus forcing the playhead to re-enter the D&D slide.

The On Enter action ‘EnterDD‘ is also a shared action and looks like this:

I used that action for both D&D slides, even though v_counter is not used in the the first solution.

I hear you! Why a shared action, you only need it twice, and the only edit to make to a duplicate advanced action is the label of the feedback container. If you were one of my college students, you would know that ‘Weymeis never acts without a reason….’. I will try to explain why I preferred a shared action with two parameters, instead of two advanced actions.

When you import this shared action in a new project by dragging it to the Library from this project opened as External Library (see Libraries) the variables v_counter, v_first and v_second are created automatically in that new project, with their definition and default value. That is a time saver, something to take into consideration when creating shared actions. This happens only for variables that are not defined as parameters.

Offer

Do you want to try out those actions? Send me a mail (info@lilybiri.com) and tell me if you use shared actions, or will use them in the future?  As a 2018 offerI will send you a project that you can use as external library with the two shared actions (EnterDD and DragSequence) described in this blog post, and instructions how to use them.