tag:blog.lilybiri.com,2013:/posts Captivate blog 2018-07-27T23:09:41Z ir. Lieve Weymeis tag:blog.lilybiri.com,2013:Post/1306585 2018-07-27T23:09:40Z 2018-07-27T23:09:41Z Rare Tips for Shared Actions

Intro

It is not a secret that I am a big fan of Shared Actions. A project without at least one shared action is a big exception to me. From what I hear and read, lot of you don't realize how much time you can save with those mysterious action. This short article will offer some ideas where Shared Actions are used for (maybe) a totally different situation than you expect.

1. Creation of Variables

If you are reading this post, it is very likely that you use system variables as well as user variables. Do you create user variables in each project, and include a proper description and eventually default values?  I have a list of variables which I use very often in projects, here are some examples:

  • v_null: an empty variable used to check if Text Entry Boxes remained empty after a learner clicked its Submit button, or to reset the variable associated with a TEB.
  • v_counter: as the name tells to track a number of clicks, attempts....
  • v_visit: for situations where the content of a slide has to be different on a later visit, you want to track if the slide has been visited
  • v_one, v_two, v_three....: number of variables that can be used for different use cases, like tracking clicks on hotspots, finishing chapters...

Knowledge fact: when you import a shared action in another project, variables not defined as parameters, will be created including the description and default value.

I have a shared action with a list of Assign commands, one for each of those often used variables. It doesn't matter what you assign at all. I drag that shared action from my external Library with shared actions to each new project. Variables are ready for use, even as parameters in other shared actions. 

  

2. Shared Action without Parameters

Sounds very strange, because the reusability of a shared action is based on parameters? I already gave a first example of such a parameter-less SA under 1.  It is much safer and easier to transfer a shared action to another project than an advanced action. You use the shared action directly or convert it to an advanced action if you prefer (maybe for more editing). Here is an example:

 I use this action to calculate the reference time in seconds (to be used later in calculations) of a frame, mostly the first or last frame of a slide. Defined as a shared action, it needs no parameters. Once dropped into the project Library, I can use it for any frames where I want a reference time.

3. Shared Action as Template 

You can copy an object or a slide, which has advanced actions attached to a new project. But that is not always working great. If you have navigation in the advanced action 'Jump to Slide', that command will often be reset to 'Continue' if that slide is not found. Same for objects, variables etc. 

Less known is that any shared action can be used as a template to create an advanced action. In the top left of the Advanced Actions dialog box, you are used to see 'Blank' which is the default template for an action. Open the dropdown list, and you'll find all shared actions in the project as extra templates:

Choose one of them, you'll have to fill in the parameters, add a name, edit the commands (delete, add as you want) and save as an advanced action. 

Example: a shared action triggered On Enter for a dashboard, checking a number of tracking variables and showing something special after all variables prove that everything has been visited. You can set up the shared action for 4 variables. If you need less or more variables, convert the action to an advanced action and edit it!

What about you?

Do you use shared actions? Did you like these tips? Do you want to have some training about variables/advanced/shared actions?  I love seeing comments on my posts, and promised: you will always get an answer!


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1304708 2018-07-20T17:25:51Z 2018-07-27T17:44:24Z Rollover in Fluid Boxes?

Intro

One of the type of objects that is indicated by the tracker as not compatible with HTML output are rollovers: rollover caption, rollover image, rollover slidelet, rollover shape. However if you ignore that warning for a non-responsive project, the rolloverrs will work fine when used with a mouse on a desktop or laptop screen (with the exception or the slidelet, which you should avoid at all times). Its functionality will not work on a mobile device, even not when using a stylus. But the 'mouse' users have that functionality.

However when you create a responsive project using Fluid Boxes, the options for inserting a rollover are greyed out. There is no way to add them. Is there a workaround to have rollovers for desktop/laptop users? That question appears once in a while in forums or social medai. In this post I will talk about my tentavies to mimick a rollover..

Example Movie

I cannot insert a responsive movie in a blog post. Use this link to have access to it. Try it out on a laptop or desktop screen: roll over the buttons in the left and in the right most Fluid box. You'll see rollovers for the big Blue buttons which do not have a real button functionality. The red buttons on the right are active, a hint message appears when rolling over the buttons. You can click those red buttons. This is a static screenshot of that slide (which appears after the poster image and the first slide):

If you try this on a tablet or a smartphone, rollovers will not appear. I tested on iPad and on an Android (HTC) phone.

First Mimick: Hint Messages

You did see the Hint messages for the red buttons when hovering over them. If you use a tablet or a phone they will not show up. Those buttons have the InBuilt States 'Rollover' and 'Down', but only the Down state will be visible on those mobile devices. This is the Object state panel for the second button:

For interactive objects it is possible to check the option 'Hint message' in the Actions tab. In all themes included with Captivate those messages are no longer in a caption but in a shape. The hint message appears wh

There are some problems with this solution:

  • Buttons and Hint messages will share the real estate in the (normal) Fluid Box.
    That is a waste of space especially for mobile screens where those hints never appear. and the buttons may shrink too much as you can see here:
  • I tried to use a static fluid box for each button+hint to be able to stack the Hint message over the button but that leads to very ugly flickering and is excluded.
  • You don't have control over the exact size of the buttons, and certainly not over the HInt messages (look at the screenshots above). This may be not so important since you'll only watch on a big screen, but nevertheless.

Second Mimick: Rollover State

With the blue shape buttons I demonstrated that you can fill the Rollover state with Text (mimicking a rollover caption), with an image (mimicking a Rollover Image) and with both. Here is a screenshot of the second shape button, having an image and text:

The effect is quite nice, provided you use rather big shape buttons as was the case here:

There is a possible problem when using images: they can be distorted if the option 'Maintain Aspect ratio' is unchecked. That was the case in the example, and can lead to distortion:

Shared Action for Red buttons

The active red buttons trigger a shared action which will change the state of a shape (showing explanations), add a star to a progress indicator and have it animated. If you have read blog posts written by me, you know that I am a big fan of Shared Actions.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1297412 2018-06-29T07:39:21Z 2018-06-29T07:39:21Z Tips to localize a quiz

Intro

This article will not be interesting for you if you always create courses in the same language, and you have Captivate in that same language. In my casen Captivate is not released in a Dutch versoin, and moreover I sometimes also need to create French courses, along with English courses. Practical tips to save time when localising are always welcoem. Today i will focus on Quizzes. I have an English version of Captivate but want to create a quiz in Ducht and in French. What is the work flow?

Quiz Preferences

Start by localising Default Labels  in the Quiz Preferences. That dialog box allowas you to translate messages and labels on buttons. You don't have to trabslate labels that you'll never use. As you can see in this screenshot, I never use Skip/Back, Submit All nor the Timing message. 

After savibg the Preferences, usie File, Export, Preferences. You can import them later on in any project where you need the same language for a Quiz.

Master slides

The changes you made to the labels are not relected in the quizzing master slides, which is a pity. It can be necessary to increase the width of the buttons if the new labels are considerably longer than the original ones. I will not bother about that now, nor about editing any of the texts, like "True" and "False" which need translation. The embedded object 'QUestion title' is a placeholder, will be replaced by the questiob type on quiz slides, you cannot even edit it if you want those indicators translated. All can be done with:

For the score slide, you have to edit the master slide if you want the field labels to be localized.  Those labels are not included in Quiz Preferences which is too bad. As master slides are part of the theme you can include them in a custom theme. It would be great if the labels translated in Quiz Preferences were included as well, but that is not the case.

GIFT text

Several versions ago the possibility to import a GIFT file to create quiz slides was introduced. That is not only a great way to import lot of questions, but also to localise the questions. I include a txt file created with the GIFT rules, to allow you to try out this feature (and to learn some Dutch ).  Here is an example of a question, MCQ with multiple corect answers and partial scoring:

// === Multiple Choice MA ===
::Meerkeuzevraag (meerdere correcte antwoorden) ::
Welke componenten maken deel uit van een thema?
{
~Aangepaste Effecten
~%30%Master Slides
~%40%Objectstijlen
~Taal met spellingcontrole
~%30%Kleurenpalet
}


After importing the GIFT from Quiz menu, the rhird question shown above, looks like this:

Watch how the Question title placeholder now has a Dutch text. The feedback messages are translated as are the labels on the used buttons: 'Submit' became 'Indienen' en 'Clear' is now labeled 'Wissen'. The tiny progress indicator is translated as well. You may have to check the score, because the partial scoring will have rounded numbers. In this case it is not necessary: 3 points go to the second and fifth answer, 4 points to the third answer. 

Final edit T/F slides

Something cannot be done automatically, which is the translation of the words ‘True” and “False” on that type of slides. For that finishing touch, which can only be done after inserting the Quiz slides, I use the Find and Replace functionality. 



 

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1291679 2018-06-09T10:20:57Z 2018-06-09T10:20:57Z Quiz Slides with Fluid Boxes

Goal

Today this question appeared on the forums:  "Easy way to give better feedback in Fluid boxes in the Quiz"

So for the second time in a couple of days a blog post based on such a question. If you missed my workflow to tweak Feedback messages for Drag&Drop, here is the link.

That question is related with a blog post I have been writing about the setup of Fluid Boxes in Quizzing Master slides. If you have read that post, it explained that all feedback messages on those master slides are stacked on top of each other, and for that reason that Fluid Box needed to be converted to a Static Fluid Box. I didn't mention in that post the workflow I am using to create individual feedback messages on the quiz slides which is the purpose of this short article. You can see it as a add-on for the article about fluid boxes in Quizzing master slides, and maybe also show some features of that static Fluid Box, which are not very well documented but which I discovered when trying to find the easiest workflow.

Workflow

Before starting the work flow described below, check the quizzing master slide. Make sure the used styles for the messages are correct and that all the message containers have the same size and are aligned. For the packaged themes that is not always the case.

You have to know that it is NOT necessary to unlock an object from a static fluid box before moving it! That is only the case for the normal, non-static fluid boxes. In static fluid boxes the objects are not glued to the fluid box in the same level. You can even move them out of the fluid box.

Remember: if you screw up something when trying out the workflow, you can always return to the normal situation by clicking the button 'Reset Master Slide' in the Properties panel of the slide.

Step 1

Select the top message. In the default stacking order it will be the Success message. Edit the text. If you are seeing the text of the other images below, check the opacity of the fill, and increase it. 
After editing keep the message selected and move it out of the way. I mostly use the shortcut key CTRL-UP in this case. With each use of that shortcut the message will move up 16px (which is the default size in the grid). Be careful: the message will be over the fluid box containing the answer area. It will not snap to that fluid box, but you'll not be able to select it anymore. That doesn't matter.

In the used theme shape for this message had an Opacity = 0. I changed it to 80% to be able to read and edit the text. No need to  reset the style, will be done in the last step.

Step 2

Edit the next message, in default setting it will be the Incorrect message. 

Step....

If you have more messages, move the second message up, edit the third etc..

Last Step

Pretty easy: reset the master slide as shown in the first screenshot.

Conclusion

It remain a cumbersome workflow, but at least you don't have to unlock from the fluid box as many tell, nor getting them back into the fluid box. If you looked at the thread you see those unnecessary steps mentioned by the Adobe chat and another user. Probably misunderstanding the differences between static and normal fluid boxes. It is still a new workflow, Fluid Boxes, and really quite different from designing a non-responsive project or even a responsive project with Breakpoints.

 

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1291016 2018-06-05T14:38:52Z 2018-06-05T14:38:57Z D&D Feedback messages

Intro

Yesterday an interesting question appeared on the forum concerning Drag&Drop

The second question is answered in that thread, was about setting up the Accept for the drop target as I have already explained in previous blog posts. The first question however is at the base of this short article. I quote:

"Is it possible to show separate messages for cases such that the user not selecting the answer (Choose an answer msg) and selecting the wrong answer (Incorrect answer msg).  It currently shows 'Incorrect Answer' msg for both cases."

I asked for some details about the setup: 

  • Several drag sources, only one was correct
  • One drop target, based on my answer to the other question, it accepted all drag sources but only one by one. When dragging another source it would replace the first one.
  • Infinite Attempts

Drag&Drop confusions

Drag&Drop slide have some limitations such as: all drag sources and drop targets have to be on the slide from the first frame.  You can define it as a score slide or as a KC slide (see Drag&Drop Tips).  It has a lot of the behavior of a quiz slide, but it is not a full-blown quiz slide or KC side. Here are some points in its UI that I find really confusing and would love to see changed (logged feature requests about that since version 6):

  1. D&D slides are automatically pausing at 1.5secs but that is NOT visible on the Timeline, only in the Timing properties, whereas for quiz slides the pausing point is visible on the Timeline but NOT in the Timing Properties. This is confusing.
  2. D&D slides have an On Enter event and an On Exit event, whereas quiz slides only have an On Enter event. That is OK.
  3. Submit button both for D&D slides and for Quiz slides have one or two events, depending on the number of allowed attempts. For quiz slides, the actions triggered by those events will happen after the first step of the Submit process (where feedback messages appear), for D&D slides there is only one step in Submit process. That is OK, you just have to realize that.
  4. I talked about one or two events:
    1. If the number of attempts is limited you have two events: you allwasy have the Success event. That event and its linked action occur when the answer is validated and correct. That is fine, works the same for quiz and D&D slides. If you want to give the learner the time to read a Success message, which can appear automatically you have to leave some time to the learner by choosing the correct action On Success. Example: if you set the Success action to 'Go to Next Slide', learner will not be able to see a Success message. Change to 'Continue', and eventually increase the duration of the slide. Works fine, just that slight difference.
    2. If the number of attempts is limited, the second event is the Last Attempt event. That is indeed the indication in the Actions part of  the Quiz Properties.  The Failure message will always pop up with every Failure attempt, but the event that triggers an action only occurs when all attempts are exhausted. However in the Actions tab of a D&D slide it is wrongly labeled as Failure event. Many users  believe that the specified Failure action will occur for each Failure attempt which is NOT the case. This is confusing 
    3. If the number of attempts is unlimited you have only one event, the Success event. It is logical because you are supposed to try until you get the correct answer. For quiz/KC slides this is very clear because the Last Attempt event is dimmed when you choose for unlimited attempts. However for D&D slides the (alreadly wrongly labeled) Failure event is not dimmed, although it will never happend. This is very confusing IMO.

Sorry for this long explanation, needed to understand the workflow I explored to answer the question mentioned in the intro. I hope some of you, readers, will support my feature requests to 'repair' the UI and avoid confusion.

Workflow for  messages

User wanted to see a different message popping up:

  1. When the submit button is clicked but no drag action has been done
  2. When the submit button is clicked and the drag action was wrong

Both situations are considered Failures, but Failure doesn't generate an event until the last attempt. Since it is set to Unlimited Attempts, there will never be a Failure event. No way to replace the messages by custom text containers, if you cannot trigger advanced/shared  action on Failure.

The popup messages (Success, Failure) cannot be controlled, they don't have an ID.  You can create states for such a message, but since you cannot address the message, you cannot change the state by an action.

A possible solution is to replace the text in the Failure message by a variable, in this case I labeled it v_failure. It is possible to change the value of a variable. This is the screenshot in editing phaes of an example slide:

As default value on defining the variable I used the text to show when the learner has clicked the Submit button without doing any drag action:

The value of the variable has to change when at least one drag action has happened, which was not the correct action. Besides the events occurring after clicking the Submit button, D&D slides have also Object Actions. I will use those actions to assign another value to the variable v_failure. Open the dialog box in the Format tab for the selected drop target. In this very simple example, I used an Assign command as you see in this screenshot. I only needed it for the two wrong drag sources. For the correct source, no need to change the Failure message, since the Success message will appear. Since I used a simple action, needed to uncheck the box 'Continue Playing the Project'.

If you need to change a lot of those actions, and it is OK to have always the same Failure message, please create an advanced (oneline) action, will save you time when applying in the Object Actions. If you want a different feedback message for each wrong source, use either the Assign command (as above) or use a shared action.

 

 

 

 

 

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1286414 2018-05-27T16:54:15Z 2018-05-27T16:54:15Z Advanced to Shared Action: Step-By-Step (micro-navigation showcase)

Intro 

After the introduction to Micro-Navigation I explained how to use it for forcing the first view of a slide, and for playing an audio file on first visit. When looking at the resulting advanced actions they are pretty similar in both posts. Moreover you probably will want to use the action on multiple slides in the course, and maybe also in future courses. That sounds like a perfect scenario for conversion of the action to a Shared action. I have been blogging already several times about Shared actions. In the present article I try to explain how to reflect on the use of parameters. Static objects need to be parameters as are states and groups, I label them as 'compulsory'. But Variables and Literals are 'candidate parameters', a well-founded choice for change them in parameters,  can save you lot of time later on. Consider it a good practice example.

Analysis

When comparing the two advanced actions created in the mentioned articles, there is a small difference: the first decision (which is a standard action) has one command extra in the second advanced action (for Audio). For the ForceAct, the number of seconds to be jumped over is directly entered in the Expression command, for the SkipSlideAudio, Assign is used to store the number of seconds in the user variable v_skip. Both versions work well, but personally for a shared action I prefer the one with the extra Assign command.

What are the parameters for the shared action?

For the first decision (labeled Always in both advanced actions):

  •  'Assign v_skip with 16.5': this first command has two candidate parameters, the variable v_skip and the literal 16.5. The variable can be reused on each slide where the action is needed. Both advanced actions used the same variable in the interactive movie. There is no need to promote that variable to a parameter in that case. However the literal '16.5'  is the number of seconds to be jumped, will have a unique value on each slide, it has to be promoted to a parameter. Parameter 1 = literal. You have to be careful with literals: double-check that the same numerical value is not used anywhere else in the action. In this example there is a second literal '1' in the second decision, Increment command. It has to be different from the first parameter, which is the case.

  • 'Expression v_skip = v_skip * cpInfoFPS': the user variable v_skip is no parameter (see above). The system variable cpInfoFPS has never to be replaced by another variable, will be no parameter neither.

  • 'Increment v_visit by 1': the user variable v_visit has to be unique for each slide, as you can see in the action SkipSlideAufio where another variable has been used. This means that we have to promote that variable to a parameter, parameter 2. The literal '1' however will always be the same, no need to turn it into a parameter. We already double-checked that the literal in the first decision was different from 1.

The second decision is conditional:

  • 'IF v_visit is greater than 1': has two candidate parameters as well. We already indicated that v_visit is a parameter. The literal in this case will always be 1, will never be changed and need not to be a parameter.

  • 'Expression cpCmndGotoFrameAnd Resume = cpInfoCurrentFrame + v_skip': has 3 candidate parameters. Above was already decided that v_skip can be reused on each slide, and the system variables will always be the same.

Shared action Skip_Frames

When you choose to save any of the advanced actions used to skip frames as a Shared Action you'll see that all possible parameters are marked as OK. The reason is that there is no compulsory parameter in this action:

As a result of the analysis above, we need to mark to items as parameters: the tracking variable and the number of seconds to be jumped on later visits. The result will look like this. It is important to give a good description not only for the shared action but also for the marked parameters:

You can assign the shared action to all the slides where you want to jump frames on a later visit. You only have to define a tracking variable and estimate the number of seconds to be jumped. Here is one example setup for the slide where audio had to be jumped on later visits:

You can check in the Library for the Usage of the Shared action, much easier than for advanced actions.

Using Skip_Frames in future projects

Want to reuse this action in other projects? The workflow is described in an older blog post. Short summary:

  1. Use File, Import, External Library and point to the project where you created the shared action.
  2. Library will be opened in a floating panel. Look for 'Skip_Frames' in the Shared Actions subfolder and drag it to the Library of the new project.
  3. Because v_skip is not a parameter in the shared action, it will be created automatically, including the description.
  4. You have to create a tracking variable for each slide to which you want to assign the shared action, and define the duration in seconds to be skipped. Ready!








]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1284021 2018-05-21T10:23:29Z 2018-05-21T10:23:30Z Play Audio once on First Visit

Intro

In a previous post I explained the possible workflows to force the learner to view a slide completely before the Next button appears, but only on first visit. This new use case is similar but for another goal. Most courses will have narration explaining how to use the functionality of the course: how to navigate, how to use the TOC, how to pop up extra information, how to use a dashboard/dynamic menu etc.  When the learner is free to come back to those slides, it can be annoying if she/he has to listen to the audio again. To avoid this I will explain two possible workflows:

  1. Using the On Enter event to trigger an advanced action, which will use the Play Audio command based on checking which visit it is to the slide. It is an easy workflow, with one drawback: for the Play Audio command it is not possible to use the Closed Captioning feature packed with Captivate.
     
  2. Since Closed Captioning is only possible with Slide audio, this alternative workflow will use micro-navigation to jump to a frame after the end of the audio timeline. If you didn't read my introduction to Micro-navigation, please use this link

Both workflows can be watched in this interactive movie. Be sure to check out later visits by using the Back button. As explained in the previous post, we'll need a tracking user variable. It starts with a default value of 0 and is incremented with each visit to the slide. 

Workflow 1: Play Audio

For each slide where you want to use this action, you'll need a tracking variable. For the slide in the movie where this action was used, the variable was labeled v_visit_PlayAudio. Look at the Preview of the action, which is triggered by the On Enter event of the slide:

It has two decisions:

  • TrackVar is not conditional, will increment the tracking variable (which started at 0).
  • CheckVisit checks the value of v_visit_playaudio. If the value is greater than 1, which means it is not the first visit, nothing will happen (Continue), if it is not greater than 1, which means the first visit, the audio clip will be played.

Workflow 2: Skip frames

Look at the timeline of the slide with the Touareg salt caravan (Ténéré desert):

The Next button appears at 16,5secs. If the visit is not the first, all frames in 16,5secs have to be skipped. We need a tracking variable, which will be labeled v_visit_SlideAudio. It is not possible to reuse the variable which tracked the visits to the previous slide where workflow 1 (Play Audio) was used. I suppose  free navigation is possible, hence tracking visits will need a variable for each slide where you want to use the workflow. However, the variable v_skip, which is used to store the number of frames to be skipped, can be reused for each slide where you want to use this second workflow. It doesn't matter if you want to skip part of the slide to avoid an audio clip to be played the second time, or to avoid that animatios are playing the second time. As you see in this screenshot, the advanced action looks very similar to the one in the first post 'Force first view'.

It is so similar that it was possible to create this action as a duplicate from the one in the post 'First View'. If you are not familiar with duplicating an action, have a look at  Advanced Actions Dialog Box

Afterthoughts

Such a situation with two (or maybe more) similar actions,  immediately triggers this question for me: can I make this easier, can I save time if using this action multiple times. Two possibilities:

  1. Change the advanced action so that the same action can be applied to both situations? There are two differences in the situations: the literal which is the duration in seconds to be skipped (was 10sec in the first post, 16,5sec in this timeline) Second difference is the tracking variable. For the literal a solution could be found, but that is not the case for the tracking variables because they have to be unique for each slide. This approach is not possible for the present situation.

  2. Convert the advanced action to a shared action, with as little parameters as possible. That would also make it much easier to transfer the action to future projects, and as you learned from my webinar (see summary in this interactive movie) due to the presence o the shared action in the Library, much easier to manage. How to do the conversion and use the shared action, will be the topic of my last post in this sequence.






]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1283171 2018-05-17T09:17:32Z 2018-05-17T16:08:47Z Force First View (micro-navigation)

Intro

This question appears often: how can I force the user to view the slide completely before the Next button appears; but when revisiting the slide the Next button should appear immediately. From a pedagogical point of view, I don't think this will improve the efficiency of the learning, but that is off topic. 

Watch this movie: forcing view is used on the slide with the animated dices. The workflows for the audio slides will be explained in a future blog post.



I will explain my analysis and how to create the needed variables and advanced action.

Analysis

Look at the timeline of the animated dices slide from the movie.

This particular slide is just an example. You see that the Next button (a shape button) appears after the last animation has finished, the learner is forced to watch everything that happens on this slide before the Next button becomes available and learner can proceed. We don't want to put him/her throught the same ordeal when revisiting the slide. Here are three possible workflows:

  1. Create two Next buttons: the one at the end (visible at first visit) and another hidden button, with a timeline that starts from the start of the slide. That second button has to be made visible on second and later visits, whereas the first button will be hidden. Advantage: learner can watch the animations if he wants to, but also skip them by clicking the Next button.
    Problem: this will not be possible in responsive projects with Fluid boxes if you want the two buttons in exactly the same location. Even though they are not timed to appear at the same time, a normal fluid box doesn't allow this.

  2. One Next button, timed from the start of the slide, to be shown/hidden. Use the On Enter event to check tf it is a first visit. If that is the case, hide the Next button, use the command 'Delay Next Actions by....' and enter the time that you want to keep the Next button invisible, then Show the Next button. This looks a good workflow but you have to avoid to offer the possibility to the learner to pause the slide. The Delay command takes not into account any pausing. If  you cannot figure out how to script this solution, send me a note.

  3. Use what you learned about Micro-navigation:  except for the first slide visit, jump directly to the start frame of the Next button's timeline. That means that everything will be in place, animations are finished in this case. Check to have all objects timed for the rest of the slide (CTRL-E).  Since there is no stacking in this workflow, this workflow is also functional for responsive projects developed with Fluid Boxes. Focus of this article  is on this last workflow. Check the Timeline screenshot: the jump should be equivalent with 10secs , start of the Next Button timeline.

All workflows need to track if the learner visits the slide for the first time or not. That can be done by a user variable. We could use a Boolean, or a variable that is incremented with each visit. It is the increment approach that will be used here.

Advanced Action + Variables

The variable that will track the visits got the name v_visit, and a default value of 0. It will be incremented by 1 on each visit. Eventually you can show the number of visits by inserting that variable in a text container:

We have to jump 10secs ahead, which has to be converted to frames.You can use the system variable cpInfoFPS. We'll use another variable v_skip to store the number of frames (that variable could be reused on several slides):

v_skip = cpInfoFPS * 10

The advanced action will have two decisions, as you can see in this Preview:

In the first decision 'Always' which is not conditional, the number of frames is calculated and the tracking variable v_visit is incremented. The second decision 'JumpFrames' is conditional: if it is not the first visit, the playhead will jump as many frames ahead as calculated in v_skip. Since this action is triggered On Enter of the slide, the system variable cpInfoCurrentFrame corresponds with the first frame of the slide.

Afterthoughts

How will you manage if you have a lot of slides that need to get this 'Forced view' action?  What can be reused? Will you duplicate and edit the actions? What has to be edited? Try to find an answer to those questions. Look out for my reflections in two future posts: next one will show that a similar advanced action can be used for another use case, and in a third post I'll explain why this perfect to be converted to a Shared action, how to convert the present advanced to a Shared action to make it as flexible as possible.




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1282486 2018-05-11T16:13:11Z 2018-05-11T16:19:51Z Micro-navigation (introduction)

Intro

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'. We will start with a comparison between navigation between Slides (macro-navigation) and navigation between Frames.

Navigation

Between 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

Between 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 now, either after publishing and uploading to a webserver, or with Preview HTML in Browser! 
Everything is working as exptected? Great, you are ready for more advanced workflows with micronavigation. Watch out for the next article about micro-navigation: 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.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1281265 2018-05-08T08:44:55Z 2018-05-08T08:44:56Z Where is Null in CP2017?

Intro

One of my most visited blog posts published 7 years ago (Captivate 5, 5.5)  is Where is Null?

Beware: the embedded movie is a SWF, you need a browser with enabled Flash Player to watch that movie. Everything worked fine for SWF output also in later versions. However it is now partially broken for HTML output in CP9 and CP2017. Several users contacted me to ask for a solution, hence the reason for this new post.

Use Case

The use case can be split up in two phases:

  1. Checking the entry in the Text Entry Boxes): user has to enter something, but it is not to be validated, cannot be empty. Because the way Captivate is treating the value of variables, you need to create an empty variable, which I use to label 'v_null'. If the TEB field(s) is (are) empty, a warning should appear for the user.
    That part described in the old blog post is still valid!  For that reason I will restrict the explanation in this post to one TEB on the slide.
  2. Reactivating the Text Entry Boxes) to allow a new attempt for the learner. Once the Submit button is clicked the TEB is deactivated by default. It is this second part that is no longer functional in recent versions for HTML output.  Focus will be on this second part.

Example Movie

You can watch the example movie by clicking this link

CheckTEB

Workarounds for Reactivating TEB

I propose two workarounds: the first workaround uses the dummy slide as described for another use case in a recent post as Tip 2 (Reset Slide). Since you will re-enter the slide, you can use the On Enter event to restore the initial settings. The second workaround uses micronavigation, which was also used in the original setup. But in this case micronavigation will be not be used to move the playhead before the pausing point of the TEB, but to re-enter the slide.

Solution 1: Using Dummy slide

In the movie this solution is on slide 3, the dummy slide (duration 0,1sec) is slide 2. You see the slide numbers at the bottom in the movie. That is the biggest drawback of this solution, you will have extra slide(s). Three events are used on slide 3:

  • On Enter event triggers the advanced action EnterEmpty which resets the situation when re-entering the slide: clears the TEB associated variable v_MyName, hides a Group Gr_Retry (message + button) which will be shown when the TEB is empty and hides another group Gr_OK (message + Next button) which will be made visible when the TEB has an entry.

  • Success event of the TEB triggers the shared action Check_TEB which is also used in the second workflow. It has 3 parameters: the variable associated with the TEB, what (group or object) has to be shown when the TEB is empty, and what (group or object) has to be shown when the TEB variable has a value. In this case the two last parameters are groups: Gr_Retry and Gr_OK.
  • Success event of the Retry button has the simple action 'Go to Previous Slide'.

Solution 2: Using micronavigation

You see this solution on slide 4. This solution needs one more user variable v_start to store the first frame number of the slide, using the On Enter event of the slide. The Retry button will use this number in combination with the system variable cpCmndGotoFrameAndResume to navigate the playhead to one of the last frames in the previous slide. This will avoid the creation of extra slides as with the first solution But the workflow is a little bit more complicated.  The used events and actions are now:

  • On Enter event triggers the advanced action EnterEmptyBis which resets the situation when re-entering the slide: clears the TEB associated variable v_myName, hides a Group Gr_RetryBis (message + button) which will be shown when the TEB is empty and hides a message  Tx_Welcome_20 (kept the generic name) which will be made visible when the TEB has an entry. It also defines the value of v_start with the current frame number, which will be the first frame of the slide. 

  • Success event of the TEB triggers the shared action Check_TEB  used in the first workflow. It has 3 parameters: the variable associated with the TEB, what (group or object) has to be shown when the TEB is empty, and what (group or object) has to be shown when the TEB variable has a value. In this case third parameter is not a group but the message Tx_Welcome_20.

  • Success event of the Retry button triggers an advanced action RetryAct with two commands: clears the variable v_myName, and calculates the frame number that is 2 frames less than the start frame of the slide. I prefer 2 instead of 1 frame because there could be a small delay which makes v_start equal to the second frame number of the slide.

Roundup

Drawback of both proposed workarounds, compared with the original solution (broken now) is possible flickering when the slide is re-entered. I have tried a lot of ideas to avoid that flickering which is an annoying issue since many versions (if my memory is correct since version 6): transitions (not slide transition which is unsupported for HTML output), Delay command, delay on timeline etc.. 

Drawback of the first workaround is that the total number of slides (cpInfoSlideCount) and the current slide number (cpInfoCurrentSlide) cannot be used directly to indicate slide progress due to the inserted dummy slides.

For the second workaround: if you want to apply this to multiple slides, it is possible to reuse the variable v_start which stores the first frame of each slide. If you use the shared action, the variable v_null is not defined as parameter. That means it will be automatically created when import or drag this action to the Library of a new project. As you probably know I am a big fan of shared actions. Maybe I will post some of my tricks to save time with shared actions. in a future post.





]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1278808 2018-04-30T19:15:00Z 2018-04-30T19:15:00Z Easy Timeline Tweaks

Intro

Last week at the Adobe eLearning Conference in DC I presented two sessions about the Timeline. The first part 'Demystifying Captvate's Timeline' allowed me to explain the basics without having to rush as was the case in the Adobe Learning Summit at Las Vegas 2017 (watch the interactive version of that presentation in: Captivate's Timeline). The second part 'Mastering TImeline' had its focus on more advanced workflows, using micronavigation, advanced/shared actions and multistate objects. In the first part I didn't use any advanced nor shared action, just offered some small practical tips. For those who couldn't participate in the conference I will summarize those tips.In this article you'll find 3 tweaks.

Tip 1: Pausing all slides at the end

This request often appears in the forum, and is also useful when using Captivate for presentations  (as I usually do). The user has to take an action to continue to the next slide. Two possible situations: you are using a default playbar, or custom navigation. Both workflows are using a shape button on master slides. Shape buttons are the only interactive objects allowed on master slides. You can use them in non-responsive and responsive projects (both Fluid boxes and Breakpoint views).

With Default Playbar

  • Open the Master slide panel
  • Select the Main Master slide
  • Add a shape button, with Alpha = 0 for the Fill and width = 0 for the stroke to make it invisible to the user
  • Check the settings for that shape button in the Actions tab of its Properties panel, to look like this screenshot:

    No action is needed for this shape button, its unique use is to Pause the slide. Each shape button set up this way will pause slides using this master slide at the end of the slide, whatever its duration.
  • Check if the daughter master slides have the option 'Show Main Master Slide Objects' checked. With the included themes, that is the case for most master slides, with the exception of the Title and the Blank master slide.

With Custom Navigation

If you use master slides with an inserted Back and/or Next shape button for custom navigation, you can use that shape button with the same settings as described under the previous workflow. Those buttons will have a Fill and perhaps also a stroke, and they may not be on the main master slide but on other master slides. You just have to check that each master slide has at least one shape button to pause the slide.

Tip 2: Reset a slide

This tweak can be used in several situations:

  • to reset a knowledge check slide
  • to reset a Drag&Drop slide configured as knowledge check slide
  • to reset effects, including motion effects
  • .....

In the second presentation I explained an advanced workflow using micronavigation, but this workflow is easier, though it will increase the number of slides, which means that you cannot use the system variables cpInfoCurrentSlide and cpInfoSlideCount to show the progess of the slides. Try this out:

  1. Insert a short dummy slide before the slide that you want to reset. Give it a timing of 0,1sec (shortest possible).
  2. On the slide to reset, insert a (shape) button which you can style as you wish.
  3. The success action of that button should be: Go to Previous Slide'. When you click that button, the playhead moves to the previous slide which is so short that it is practically invisible. Since the content slide is re-entered it will automatically be reset for the situations mentioned above.

This workflow is also valid for all types of cptx-projects, responsive or not.

Tip 3: Avoiding frustration in Quiz

Quiz and score slides have a default pausing point at 1.5secs. That pausing point is visible on the Timeline, but is not present in the Timing Properties panel. Here is a short description of the 'role' of this pausing point:

  1. On Quiz slides it is linked with the two-step Submit process (and Submit button). In the first step the playhead remains paused while the learner sees the feedback messages. In the second step, the playhead is released. If you keep the default Success/Last Attempt actions set to Continue, the playhead has to visit all the frames in the inactive part of the quiz slide (part after the pausing point) before reaching the next slide. You could change those actions to 'Go to Next slide', but sometimes (depending on the setup for transmitting the score, bandwidth etc) this could lead to problems.

  2. On the Score slide the pausing point is linked with the Continue button. Contrary to the Submit pausing, the actions triggered by that button which you specify in the Quiz Preferences (If passing/failing grade) are only done when the playhead reaches the last frame of the score slide.

In both cases you can avoid frustrations by dragging the pausing point closer to the end of the slide timeline, but not completely till the end (leave a small inactive part). 

Moving the pausing point is even more required when you have slide audio on the question or score slide. In almost all cases, that slide audio will result in a longer slide duration than the default 3 seconds.  You have to know that it is not possible to pause slide audio on a quiz/score slide by a pausing point, as is possible on other slides when using an interactive object. You may not be aware of the pause at all, audio will just continue. Many users are confused by that.  If you leave the pausing point at 1,5secs, the learner will have to wait a frustrating long time when completing the Submit process (quiz slide) or leaving the score slide with the Continue button. Make sure to drag the pausing point in such a situation:

Tip 4: Forcing views

As a professor with a lot of experience in tutorials for adult learners, I really dislike this request that appears too often on the forums: how can we force a learner to 'view' all the content on a slide. Forcing viewing doesn't mean understanding, nor learning at all, can even have the opposite effect. But that is off topic.

You have to forget the default playbar in this situation. Each slide will need a Next button. The timeline of that button has to start after all content has appeared and all audio has been listened to. Timelne will look similar to this screenshot:

Such a setup will become very annoying if you allow the user to revist the slide: he will have to wait again until all audio has played and all content has appeared to be able to proceed. Is there a solution? Sure, but not without advanced/shared actions. Watch out for a next blog post, linked with the second part of the Timeline presentation. I will offer you a shared action that makes it very easy to avoid that boring situation on second and later visits. 



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1271573 2018-04-11T21:31:25Z 2018-04-12T14:47:41Z 3 Audio Tricks

Intro

Last week I answered several questions about audio on the forums with pretty simple workflows Maybe you will like them? Contrary to what you are used to read in my blog, this is a short article, there is no example movie.

Trick 1: Audio when hovering over a (shape) button

Buttons and shape buttons have 4 InBuilt states: Normal, Rollover, Down and Visited (only available in CP2017).

Quite a while ago I explained what I mean by an 'Audio Object'. It is a shape or a highlight box, which you make invisible to the user by changing the stroke width to 0 and set the Alpha for the Fill to 0 as well, but attach audio to that object. If you want to learn more about them have a look at this post.

This screenshot illustrates the workflow. The audio (Cymbals) will only play when hovering over the button.

Trick 2: avoiding overlapping audio on quiz slide

A problem occurs on quiz slides with following setup:

  • Slide audio plays explaining the question
  • Object audio is attached to the Feedback messages

Problem is that when a learner submits the answer(s) before the slide audio ends, there will be overlapping of the slide audio with the audio of the message that pops up. It is not possible to control the appearance of the Submit button, since it is an embedded object, has no individual timeline. Submit button in all Captivate themes is of the type 'Transparent button'. This was my workaround, and the user confirmed it was working perfectly:

  • Create an image that is similar to the Submit button. That is perfectly possible with a shape: same fill, same stroke, same font, font size and font color as the quiz buttons.
  • Take out the label 'Submit' from the original Submit button, set the stroke width to 0, alpha for the Fill to 0 so that it becomes invisible. It will still be active.
  • Put the image in the same location as the invisible Submit button (use Align menu).
  • Change the start of the timeline of the image, so that it begins just at the end of the slide audio.
  • Move the pausing point of the quiz slide to be after the end of the slide audio. Only way to do that is by mouse dragging. That pausing point is not in the Timing panel.

Why is this working? Because the Submit button is an embedded object, it is always on top of added custom objects (the image). That means it is active! Only when the learner would click by accident on the 'invisible' active button, the problem will occur. But in most circumstances the learner will not be aware of that possibility and will wait patiently until the audio finishes and the 'Submit' indicator appears.

Trick 3: Audio in states

Just want to refresh your memory: it is possible to attach audio to states. When you change a state, the audio of the previous state is automatically stopped. A feature that you can use in many ways as I illustrated in these movies:

Automatic Lists

Drag&Drop Object Actions

You can even create a shape with states that are invisible but have all audio clips. Let your creative mind wander....


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1266188 2018-03-28T16:39:59Z 2018-06-18T17:25:40Z Poster Image - AutoPlay

Intro

This short blog post is meant to help solving an issue that pops up in the forums once in a while: "How to get rid of the white screen and Play button on mobile devices?". When publishing to HTML the AutoPlay is automatically disabled,  Reason is that some devices and OS (iOS) do not allow Autoplay. For SWF output you had the choice: it was possible to change the default setting which was to have a movie playing automatically after loading. I often disabled that option when embedding SWF's on my blog (look at older articles), especially when audio was involved because it is not very polite to have audio being pushed to the reader automatically. 

Consequence of the AutoPlay being disabled without your control as developer, is the appearance of a big white screen with a small play button right in the middle. The button looks like this (but originally one is smaller, 96x96), black arrow in black circle with transparent background:

Such a button will not always blend well in the design of your project.

Poster image

To get rid of the white screen, you need to create a "poster image"? That is a static image, preferably with the same resolution as your project. For a non-responsive project, published with Rescalable turned on, the poster image will fill up the screen. All embedded HTML movies in my blog were using this type. 

Mostly I duplicate a slide from the project to create such a poster image, Duplicate because it may need some editing, especially if you also want to have a better looking Play arrow. I will take a screenshot of that slide while it is playing to save as a PNG (or other image format) and then hide the slide to avoid it to be included in output. 

When the image is ready, set up the Preferences, Project, Start and End: turn off AutoPlay and indicate the poster image.

Play Arrow

My personal hack to have a play arrow that is fitting with the design of each project is this workflow:

  • I created a copy of the original image  C:\Program Files\Adobe\Adobe Captivate 2017 x64\HTML\assets\htmlimages\PlayI_icon.png and edited to turn it into a full transparent image 
  • I renamed the original image and put the empty image in the same path.
  • On the poster image I created an arrow, mostly I use a triangular shape, rotated 90°, using colors from the project Theme Colors palette. You will have seen them in previous blog posts.
  • That Arrow has to be centered horizontally and vertically. 

Dimmed or not Dimmed?

The uploaded published HTML project will by default have a dimmed Poster image (Alpha = 70%). It was meant to have the original Play icon stand out from the background. But that black play icon is gone:

A helpful user on the forum posted the solution: Mark Sabrento  Thanks a lot, Mark (screenname sabre123). I tried it out and it works great. You find it in this  thread

Look for the file CPM.js, which you'll find in the published folder under \assets\js

Open his file in an editor (I use Brackets, but even simple Notepad is possible). Change 0.7 to 1 in this line to set the opacity(alpha)  to 100%

cp.autoplayImage.style.opacity=0.7

Update

An expert posted a solution  in a thread to get rid of the focus rectangle surrounding the play icon. Sorry, but I forgot to bookmark the thread, which means I cannot pay credit to that expert by name, but found it worthwhile to complete this blog post with that solution:
  • Find the file CPLibraryAll.css in the published folder under assetscss.
  • Add these lines before the existing script:
       *:focus {
       outline: 0;
       }
In that same file you could also change the width and height of the original Play icon which is set at 116x116px. 
]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1265448 2018-03-26T20:12:57Z 2018-03-26T20:12:57Z Drag&Drop Actions

Intro

In the webinar which I presented on 2018/3/15 about Shared Actions, I showed several workflows with shared actions. If you want to have a look at the presentation used during the webinar, look at my previous blog post. You'll find a link to the published interactive movie

One of those examples, was a Drag&Drop slide where both advanced and shared actions were used as Object Actions. It can help you with the tough task to choose between the two types of actions. A similar example appears in the presentation, where only a shared actions was used. It had 7 drag sources and two drop targets:

Example movie

You can watch this movie to understand the goal of the D&D slide. It has 6 drag sources and only one drop target. You will be asked to drag only the correct new features in CP2017 to the drop target. Only when the answer is correct will you see the Next button. There is a Reset button for the D&D, which is not the default reset (because of the states used on the drop target) but uses an approach which I have explained already multiple times.


Setup D&D slide

Auto Submit Correct Answers is activated, and the Submit button has been dragged to the scratch area. The drop target accepts all drag sources, which will disappear behind the target but the count is limited to 3 (because there are 3 correct answers). Due to the Auto Submit which only will happen for the correct answer, the Next button will only appear when the answer is completely correct (Action 'On Success'). 

The drop target is a multistate object. I didn't add InBuilt states in this case but three custom states, using a gradient edited for each state with 'Edit Gradient'.

On the slide, not overlapping with any object, there is a multistate shape, labeled 'Comments',  acting as feedback container. The normal state is blank and you see the other states in this screenshot:

Advanced Action DD_CorrectAct

I imported the shared action used in the presentation to the project Library and used is as a template for this Advanced action DD_CorrectAct. I added the Play Audio command. First I tried to add the audio to the state 'Correct' of the multistate shape 'Comments', but that proved not to work in this case, probably due to the Drag&Drop limitations. After the duration of the audio clip (4secs) the shape reverts back to the Normal state, which is invisible to the user (Alpha and Stroke set to 0).

Sorry for the generic label on he drop target. You probably know from my previous blog posts that renaming an object used in a D&D interaction, will kill the set up. 

Since this action is used with exactly the same feedback text and same audio clip for 3 drag actions it is much better to use an advanced action in the situation. 

Shared Action DD_IncorrectAct

The previously described Advanced action DD_CorrectAct is used as source to create a shared action. Since there is no state change needed for the drop target, the fifth command can be deleted. Five parameters are needed (due to the fact that audio couldn't be embedded in states). Four of them are compulsory parameters, one candidate was turned into a parameter: the literal for the delay time. That delaty time has to be at least as long as the audio clip to be played.

You just need to apply the advanced action and the shared action to the proper object actions: 

Want more?

Goal of this simple example was to show when to use a shared action instead of an advanced action? It could have been done with 3 duplicate advanced actions, which is what I see most clients doing. Start to appreciate the advantages of shared actions over duplicate advanced actions:

  • Ease of transfer to other projects
  • Management in the Library
  • Possibiity to use as template

Give it a try. If you want to learn more, give me some feedback, please.






]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1256417 2018-03-05T20:48:05Z 2018-03-19T17:04:30Z Webinar Shared Actions!

Update

Thanks to all who attended the webinar, mentioned below. As usual I created a presentation with Captivate (2017) for this webinar. This allowed me to convert it to an interactive movie, which I want to offer to all readers of my blog.  I hope you'll enjoy it and learn something about Shared Actions, which are so ignored by most Captivate users. 

As for a normal training I like to use the subject of the training in the presentation. As you can see in this screenshot of the Library many shared actions were used in the presentation:

Their usage can be found in the Advanced Interaction panel, with the exception of the shared action which was used on the Drag&Drop slide:

I plan to explain some of those shared actions in future blog posts. Another plan is to write a more elaborate workbook for Shared Actions, which can be used for exploring in-depth, but also as a 'cookbook' because it will have recipes. A typical use case for Shared actions are Custom question slides, which are not treated in this short presentation. If you think a workbook would be help you  please send me a note or post a comment.


Invitation

If you are interested in a live session about using Shared Actions, you can register for the webinar on March 15, at 4pm CET (8am PT).  You'll find the link to the registration form for  webinar 'Dare to Share: Power of Advanced Actions in Captivate'. at the end of this invitation.

The majority of my blog posts are dedicated to advanced and shared actions. Advanced actions is a feature of Captivate since version 4. It allows to extend Captivate's functionaltiy in many ways, without having to learn a programming language. With the point-and-click interface of the new enhanced Advanced Actions dialog box in CP2017, you can realize scripts that will be converted to JS on runtime for HTML output (if you still use SWF output, will be converted to AS3).

Shared actions were new in Captivate version 7. They are a more flexible alternative to Advanced actions, with focus on reuslability. Due to the presence of parameters, to be filled in on assigning a new instance of the shared action to an event, you can adapt the action to each new situation. In Captivate 8 variables and literals became possible parameters as well, thus increasing that usability. Shared actions have some other important advantages over Advanced actions: they will appear in the Library like any other asset. Using the External Libraries feature this makes exchanging shared actions between projects very easy. The Usage button is available for Shared actions.

Variables that are not defined as parameters will be automatically created in a new project when you import the shared action using it. That is a real timesaver.  Some parameters can have only one type (variables, literals, states, audio clips) but most of them can have different types:  they can be a group, an image, a video, whatever you need in that project.

Less known is the ability of using a shared action as a template for the creation of an advanced action. That can be a great time saver. Learn about this feature as well in the webinar


Poster

You're welcome to particapte in this webinar, Here is the registration 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.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1236670 2018-01-28T14:53:00Z 2018-03-05T11:55:32Z Shared or Advanced actions?

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

Watch this embedded movie (rescalable HTML), where you'll see the two solutions after publishing. As an alternative you can also watch it directly using this link. 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.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1213778 2017-12-10T18:44:39Z 2018-06-20T14:29:38Z Custom Review

Goal

This question recently appeared on the forum (thread):

"I'd like to customize the results page at the end of a quiz to display the numbers 1 to 20 (representing the 20 questions in the quiz) and indicate if each question was answered correctly or incorrectly."

Although I posted an answer, the user never returned to check it. Since I have spent some time to work out that solution, I also discovered that it could be very useful in two situations that are often mentioned as failing in the normal Captivate design:

  • To show the user an overview of answers on a test with Knowledge Check slides: which anwsers were  correct/incorrect? If you are not sure about the differences between KC slides and normal quiz slides, have a look at this article.

  • To create a Review slide, where the learner would see the same information for normal quiz slides. Captivate has a great Review feature for quiz slides (not for KC slides) but it has some shortcomings. It will not only show the answers by the learner but also the correct answers. Moreover, clicking the Review button will cancel all remaining attempts on Quiz level for apparent reasons. With the solution I propose the user would not see the correct answers, only which questions were answered correctly or incorrectly, and the Retake attempts would still be available. 

The work flow is based on a couple of simple shared actions, use of multistate objects (for the feedback checkmarks) and some advanced actions.

Example movie

Watch this embedded movie or use any device to open this link (it is a rescalable, non-responsive HTML5 project). 

You will first see a test with two Knowledge Check slides, followed by a 'Review' slide. You will be able to retake this test, or to continue.

Second part is a realy quiz, with 5 question slides. Question slides are followed by a Review slide. In Quiz Preferences I provided 3 attempts. When the attempts are exhausted or you succeeded passing the test, the Next button (was formerly a Retake button) will take you to the official Score slide.

.

Set up

Checkmark - multistate object

The checkmarks, both on the Review slide for the KC question and for the real quiz, are shapes with 3 custom states:

  1. Normal state: shape is invisible because Alpha for Fill and Stroke for Width are both set to 0.
  2. Correct state: shape is filled with a PNG representing a green tick symbol. This can of course be all you want: text, text + image, text + image + audio. I kept it simple. 
  3. Wrong state: shape is filled with a PNG that is the Cross symbol.

Here is a screenshot of the Object styles for the checkmark:

The checkmarks are labeled: Check_KC1 - Check_KC2 for the KC slides, and Check_1, Check_2.... Check_5 for the Quiz slides. The numbers make it easier to select them by filtering in the Parameters dialog box, because they are used in the shared actions.

Retake button Quiz Review - multistate object

That button on the Review slide for the Quiz, is used to start a new attempt because the user will not see the Score slide. I had to reproduce he functionality of that Score slide, where the Retake button automatically disappears in two situations: either the learner has passed the quiz, or the Quiz attempts are exhausted. I solved that by adding a custom state to the Retake button, where the label changes to 'Next'. To have a non-confusing Rollover and Down state, which would be valid for both the Retake and Next button, I used the text '>>'. This is the Object state panel of this button, type Transparent button like the Quiz buttons and buttons on the Score slide: The advanced action (see below) EnterReview will take care of switchnng beteen the Normal and Passed state.

The Review slide for the KC questions doesn't need that type of button. It has two buttons: Retake for those who want to retry the KC test (answers are always reset for KC slides when leaving them) and a Continue button.

KC/Question Slides - variable v_KC

I changed the default setup to only one attempt for the KC-slides (default =  Infinite attempts). That change made the Last Attempt event availalbe. Contrary to Quiz slides the results of the KC-slides are not stored in exposed system variable. I wanted to show a 'trophy' on the Review slide to learners who correctly anwered all KC-questions. To track the correct answers, I created a user variable, labeled v_KC  which starts with a default value of 0 and is incremented for each correct answer. For the same reason, the shared action triggered by the Success event is different from the one used for normal quiz slides. If you import the shared action to another project, the variable will automatically be created. 

Quiz slides kept the default setup: only one attempt allowed.

Events for Actions

On KC-slides Success event (Quiz Properties) is used for Shared Action 'CorrectAnswerKC'

On KC-slides Last Attempt  event (Quiz Properties) is used for Shared Action 'WrongAnswer'

ReviewKC slide On Enter event triggers Advanced Action 'EnterReviewKC'

Continue button Success event (on ReviewKC slide) is set to simple action 'Go to Next Slide'

Retake button Success event (on ReviewKC slide) is set to simple action 'Jump to slide  KC1' (first KC slide)

On Question slides Success event (Quiz Properties) is used for Shared Action 'CorrectAnswer'

On Question slides Last Attempt  event (Quiz Properties) is used for Shared Action 'WrongAnswer'

Review slide On Enter event triggers Advanced Action 'EnterReview'

Retake button Success event (on Review slide) is set to simple action 'Go to Next Slide'

Score Slide On Enter event triggers Advanced Action 'EnterScore'


Shared actions

WrongAnswer triggered by Last Attempt event (KC slides and Quiz slides)

It is a very simple action with two commands: changing the state of the associated checkmark to the Wrong state and going to the next slide. There are two parameters: the checkmark (which is different for each slides) and the state. Although the state always has the same name (Wrong), there is no way to turn it into a 'fixed' parameter (one of my feature requesnts). Here is the action with filled in parameters

I like the way it is possible to track shared actions in the Library, look at the Usage panel for this action/ You see that this shared action is used both for the two KC slides and for the 5 Quiz slides.

CorrectAnswer triggered by Success event Quiz slides

It is a similar action, now showing the state Correct in the first command:

CorrectAnswerKC triggered by Success event KC slides

I used the CorrectAnswer from Quiz slides as template to add an extra command that will increment the variable v_KC.

Advanced Actions

EnterReviewKC triggered by the On Enter event of the ReviewKC slide

This is a simple conditional action, to decide if the trophy will show up or not.

EnterReview triggered by the On Enter event of the Review slide

This conditional action has two decisions. The first decision will change the state of the Retake button to have a Next button if the quiz has been passed or the Quiz attempts are exhausted. The second decision is about showing an image if the quiz has been passed. It also shows or hides the text mentioning the number of the present attempt.

EnterScore triggered by the On Enter event of the Score slide

This is the 'trick'. To have the functionality of a Retake button on the previous slide, which is the Review slide, the playhead visits to the score slide, but will immediately jump back to the first question slide. All quizzing system variables are reset in that case. Only when all attempts are exhausted or the learner passed the quiz, will the score slide become visible to the learner.

More is possible...

Several enhancements are possible based on this approach:

  • You can have multiple review slides, if there is not enough space on one slide

  • You can have a review side after a chapter which has some question slides or KC slides; in that case you'll have to tweak the advanced actions; if you want to track different bunches of KC slides you can either reuse the variable v_KC or use several variables. In the last scenario you'll have to turn the variable in the shared action into a real parameter.

  • I used a simple checkmark to indicate correct/wrong answers. It is not limited to that: in custom states you can also have audio, text etc...

More ideas? Suggestions?






:


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1204539 2017-11-12T14:09:45Z 2018-06-27T09:14:04Z Fluid Boxes Or Breakpoint Views?

Intro

Captivate 2017 added a new workflow to develop a responsive project: Fluid Boxes. It doesn't mean that the existing workflows to make projects accessible with all devices are no longer important. In this post I will try to explain my way of choosing a workflow for such a project. It is possible that not everyone will agree with my point of view and I would welcome all discussions. At the same time I believe that the current work flow for those Fluid Boxes will be optimized in the future by the team as well, which will probably lead to editing this text. It is valid today, November 2017, about half a year after the launch of the Fluid Boxes method. More than ever, this post is valid today, November 2017 and will certainly change in the future.

Overview Workflows 

If you want to publish a project to be watched on any device, you have to forget about SWF output! Only HTML5 output can be used. presently Captivate offers 3 workflows:
  1. Scalable Projects: you can publish a blank (normal) project to HTML5 with the option 'Scalable HTML Content' activated. 
    This will not result in a real 'responsive' project, because the layout will be the same on all screens. Another word sometimes used for this type of project is 'adaptive'.
    Advantage of this workflow is that the development time will not increase compared with a project that is meant only for desktop/laptop. It can be a good choice for courses that will rarely be viewed on smartphones, and you don't mind to have only landscape mode. I just wanted to mention this easy workflow, but the rest of this post has its focus on the two other workflows.

  2. Responsive Project with Fluid Boxes which is the work flow introduced with CP2017. I see the result as a solution between the Scalable HTML projects (same layout on all screens) and a  esponsive project developed with Breakpoint views. Such a full responsive project can  have different layouts for diferent screen sizes corresponding with the Breakpoints. When using Fluid boxes the layout will be rearranged by the application depending on the screen size and the settings.  Some items can be left out for small screens but you will not have full control over the design for each size. Moreover there are some limitations which I will explain later on (with possible workarounds and tips). Developing time for this type of project will be in between time needed for scalable project and for a  Breakpoint Views project. Fluid boxes have a great way to make font size changing in a 'fluid' way.

  3. Responsive Project with Breakpoint Views is available since version 8. It is no longer the default approachn when starting a responsive project.  You have to switch to this workflow from the Project menu.
    This workflow allows fully responsive projects: you have control over the design for a maximum of 5 resolutions. You can not only leave out items, but also replace them by other items, like replacing an animation or video by a static image or even an icon to cope with smaller screens. Control over the design means control over size and position of each item in each breakpoint. However developing time for such a fully responsive project will be much larger.

Example Movies

I published two responsive projects, one developed with Fluid Boxes and another with Breakpoint views. They have the same content, but show limitations and workarounds for the Fluid Boxes, compared with the Breakpoint views development.
Both projects have 4 slides:
  • Titlee: not all  images which in the Breakpoint example could be used on the Fluid Boxes version because you cannot stack items. I could have combined the images in a graphical application to have one image for Fluid Boxes, but the different effects and timing didn't have a workaround.
    The images used for the mobile screen (Breakpoint) are different and smaller than for the other breakpoints. Not so for the Fluid Boxes example.

  • Buddies: similar: the ruler cannot be used for Fluid Boxes, at least not when stacked with other images. 

  • Content: different items can be clicked to show more information. For the Breakpoint version that information is stacked and Hide/Show is used. Text and images are combined in a group. For the Fluid Boxes I used the workaround by creating one object with different states. Grouping is not possible here.

  • Comparison: maybe less apparent, but I used an effect on a group (image + shape with text) for the Breakpoint view version, since grouping is not possible for Fluid Boxes I had to use separate effect on the items. 
Responsive projects cannot be embedded, use these links with any device please:

Fluid Boxes

Breakpoint Views

Comparing setup Theme Breakpoints vs Fluid Boxes

As described in this article, setting up a theme means the creation of a Theme Colors palette, Object Styles, Master Slides, Skin and eventually Recording defaults. The main differences between Breakpoint Views and Fluid Boxes are in the Object Styles for Text containers and in the Master slides:

Object Styles

Design of Breakpoint Views for text, when decreasing the width of the screen, will keep the font size fixed until the width of the next Breakpoint is reached. That means that for any text container, caption or shape, and for button labels, you need to define a font size for each used Breakpoint. That can be a tedious process, because you have to test it out for all possible screen resolutions. A lot of text styles are needed, both for Standard and for Quizzing Objects.  To improve the readability I will often also increase the leading (distance between lines) since it is set to 1 (term used in Captivate for leading is Spacing).

For Fluid Boxes this is not necessary, because font size will adapt to screen size in a 'fluid' way when changing the screen width. It is limited by the 'minimum size', which is set at 14pt, which is IMO too high. In previous versions the minimum font size was 10pt which still leads to readable text on smartphones.

Master Slides

Since I am working in the Expert UI, I created two separate workspaces for Fluid Boxes and for Breakpoint Views because the work flow is quite different especially when editing master slides. In both workspaces I have Master slides and Filmstrip visible at the same time, which means they have to be in two different docking stations. For both workflows I will have Rulers active on the stage to be able t use guides for a consistent design.

Breakpoint views: the most important panel here is the Position Properties panel. In combination with Rulers/Guides you can size and position all items on the master slides, including the placeholders. For Breakpoint workflow all master slides can be used, including the main master slide. Main master slide is a great tool for items that are common to most slides, including daughter master slides.  The object styles defined in the previous step will be used automatically provided you defined them as default styles! If you plan to use quizzes, do not overlook checking the default quizzing master slides. Labels to be used on quizzing master slides  have to be defined in the Quiz Preferences.

Fluid Boxes do not need the Position Properties panel, except for Static Fluid Boxes. Fluid Boxes are defined with the Properties panel. You cannot use the main master slide for Fluid Boxes, because all default themes with the exception of the Blank theme, have fluid boxes set up.  Even when editing the Blank theme the option Fluid Boxes is unaviailable for the Main master slide. In two previous posts I described the work flow for quizzing master slides and content master slides. Do not forget to have a look at the post about Fluid Boxes and Guides, because those Guides are indispensable to set up a consistent design spanning all master slides.

Limitations and workarounds - Fluid boxes

Do not use objects on the main master slide. Most other limitations are due to the fact that fluid boxes have to be "twodimensional", which means that you cannot have objects overlapping or stacked in the same location, even if they don't appear at the same time in the timeline. Here are some of the the results of that 2D paradigm and possible workarounds::
  • Grouping of objects is impossible
    That is not only disappointing for management of crowded timelines, but it also means that group effects are impossible. THse group effects can be very useful, look at this article.
    A widespread workflow consists in having different texts, grouped and  stacked in the same location. Based on a click to show one out of the group can be done with a shared action with two commands: first hides the group, second  shows one text. That work flow is impossible in fluid boxes. You'll have to create duplicate advanced actions with a lot more commands.
    Lightboxes are also impossible with fluid boxes. 
    In many cases a workaround is possible by using one multistate object instead of the group. In the movies for which I posted the links, that approach has been used on slides 3 and 4. Compare both movies. A multistate object can also be an alternative for objects appearing staggered on the timeline, but in the same location. Using an On Enter action with the command Delay Next actions can be a workaround (see Autolists).

  • It is not possible to have an object timed for the rest of the project
    This is often used as alternative for objects like toggle shape buttons or a logo on the master slide. Since such a object has a unique ID, it can be controlled, hidden on some slides and shown on other slides. Controlling objects on master slides is not possible because they do not have an ID. You'll need perhaps more master slides when working with Fluid Boxes as workaround.

  • Some types of objects cannot be used: Zoom object, mouse object, highlight box, click box over another object and line object.
    Many users still stick to the the old work flow of putting click boxes over images to create a hotspot. Workaround is to  use a shape filled with the image, a workflow that is available since many years but apparently not well-known.
    For a highlight box: use a shape as well with multistates, one having a thick border and eventually a semi-transparent fill. No workaround however for the outer fill which exists only for a normal highlight box.
    The Line shape is a rebel, often causes issues (only shape that cannot be rotated in Options). You can replace it by a rectangle with a minimum width of 4 px which is the minimum.
If you really need to use a zoom object, mouse object or stacking items in the same location: use a static fluid box. That is the case for the default fluid box where feedback messages are stacked on the Quizzing Master slides. You have to be aware that static fluid boxes will just keep the width/height ratio, but are not really 'fluid'.

Conclusion

Do not misunderstand my post, because it sometimes looks like I don't like Fluid Boxes workflow. It is a great way to create responsive projects in much less time than with Breakpoint views, but you need to be aware of what is possible. I am confident  that some of the present limitations will disappear in future releases. Use your design skills and knowledge to judge if a project is suitable to be developed with Fluid Boxes or if you need Breakpoint Views workflow. 

If you like Fluid Boxes, do not hesitate to enter feature requests for those present limitations that bother you most of all. It will be a big help for the Adobe Captivate team.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1203412 2017-11-05T15:55:36Z 2018-03-05T11:55:32Z Timeline - Advanced Workflows

Intro

At the Adobe Learning Summit (Las Vegas - 24 October 2017) I was invited to present a session about the Timeline for advanced workflows. It is one of my favorite subjects (bit below my most preferred topic 'Advanced/Shared actions') because I see so many questions on the forum that are due to not or misunderstanding the Timeline functionality.

Tutorial

For those users who were not able to attend ALS2017, I converted my Captivate presentation into a self-paced learning tutorial.

It has been published as Scalable HTML5 project. Autoplay is turned off (not allowed in some OS), just click the triangle button to start the movie (with narration). You can watch it directly on any device from this link

Or you can watch it below:

The tutorial has at its end links to different published movies, examples using the described features of the Timeline. Several features are used in the movie itself: skipping audio on the dashboard (second slide) on later visits, Delay commands for automatically building lists on different slides. Be sure to use the circular button at the bottom to show the value of the system variable cpInfoCurrentFrame, to discover (some of) my secrets.

Feedback

I would appreciate feedback and welcome questions. Are you interested in learning more about the examples? Are the mysteries not totally clear to you? Please let me know... If you want a copy of the handouts created for this presentation, send a mail to info@lilybiri.com.




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1196483 2017-10-06T17:01:59Z 2018-03-05T11:55:32Z Power of Shared Actions in Captivate

Intro

Shared actions were a new feature in Captivate 7 several years ago. They were improved with Captivate 8.  I never understood why almost no one talks about them, even self-labeled experts seem never to use them. This is a real pity because their power is much underestimated. In most projects I open an external library (have a look at Internal and External Libraries) which has frequently used shared actions. It saves me a lot of time in each project. I will try to summarize in this blog post the results of my almost 5 years of experience with Shared actions. As usual my goal is to get more CP-users to understand when and how to use them.   More users could mean getting enhancement feature requests on the priority list of the developers :)

Example movie (CP2017)

Please watch this movie, one of the examples I will explain at the Adobe Learning Summit, session 202 'Make the most of Captivate's Timeline for Advanced Workflows'. You will see in this movie how one shared action can be used both to skip slide audio on revisiting a slide, or to force to view the entire slide on first visit. This is a use within one project. That action certainly has its place in a common external Library. To have an explanation of the shared action, you'll have to be patient, because I want to give 'First View' to the participants of the session in Las Vegas, 24 October.

Published Tutorials Shared Actions

These posts were published 4 years ago (yes, have over 4 years experience with SA :-)). If you are on CP2017, the screenshots may be a little bit different because of the change to the Advanced Actions dialog box (see AA Dialog in 2017). However the work flow and terminology for Shared actions is still the same.
Dare to Share - part 1
Dare to Share - part 2
Parameters in Shared Actions
Reuse Shared Actions

Use cases

Following on those tutorials I explained a bunch of use cases where shared actions were used. Examples are the way to explore new features, and you'll find a list with links here:

1 (shared) Action  = 5 Toggle Buttons

This blog post has a unique shared action that you'll be ablefor several toggle button in all your projects. The post was written  for Captivate 8. If you are using Fluid Boxes work flow (responsive projects) in CP2017, you can have the toggle buttons in a fluid box on master slides, not timed for the rest of the project (unless in a static fluid box):


Dashboard, using shared actions

The advantage of shared actions when setting up a menu or dashboard

Drag&Drop Tips

When using object actions for Drag&Drop slides, shared actions can be an excellent choice over duplicate advanced actions


Custom Hotspot Questions

Using shared actions to create a custom controlled hotspot question which has lot of advantages over the default type of Hotspot question.


Forcing First View

This is an older version of the Example that you watched above. It did already use Shared actions.

Matchstick Game

Games often need repetitive actions and that means that shared actons are the way to go.


Playing with Captivate 9

Another version of a dashboard created with shared actions, to celebrate the arrival of CP9.

Myths and tips

Strange myths exist about Shared actions. Lot of users believe they are only useful  between projects, not in the same  project. Personally, with the exception of the external library mentioned at the beginning, I always give priority on shared actions within one project over advanced actions if appropriate. If an action is used at least twice in a project, and it is possible to use a shared action, I will not use duplicate advanced actions.

Half-myth is that you cannot edit a shared action. That is partially true. You cannot edit a shared action which is already assigned to events and have it changed automatically. However you can use the original shared action as template to create a new shared action. You will have to assign it to all events after completing the new shared action. At that moment you will appreciate the fact that the shared action appears in the Library and has a Usage button  -  like any other asset. Contrary to advanced actions you can even reuse the same name for a shared action, provided the older action is no longer present in the file. That is one of those annoying things, that you can never reuse a name for an advanced action, even if it has been deleted. Keeping track of Usage of advanced actions is also very cumbersome.

Shared actions cannot replace advanced actions in all circumstances, and they need a different set of mind when preparing the actions. You have to be very careful with the candidate parameters: variables and literals.  I could tell a lot about spectacular results when replacing advanced by shared actions that are set up in an efficient way: courses that couldn't be published anymore because of the number of variables and advanced actions that now run very smoothly, decrease of file size and loading time when using shared instead of advanced actions. Once lot of Captivate users gave me the title 'Queen of Advanced Actions'. At this moment I feel more like the defender of Shared Actions, not the first ignored and underestimated stepchild of Captivate.  Too often I hear comments like: 'I cannot see any advantage in using shared over advanced actions'.  Sorry, but that means you never tried them out. This article proves that I have explored them.... and they are on my top feature list of Adobe Captivate.

Conclusion

I would love to organize an online training with focus on use of shared actions. If you would consider such a course a valuable add-on to your skillset, please send me a message using info@lilybiri.com.



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1191774 2017-09-17T13:38:22Z 2018-05-31T19:29:47Z Guides and Fluid Boxes: Best Buddies!

Intro

If you do follow me since a while, you are aware of the fact that I am a big fan of the Rulers and Guides which appeared with version 9.0.1. They have a lot in common with the same feature in other Adobe applications (Illustrator, Photoshop to mention two). Shortly after the release I wrote an article about possible use cases in normal (blank projects): Guides Rule!

Using Fluid Boxes as alternative for Breakpoint views is an added feature with CP2017, about which you'll find a lot of articles, webinars and videos.  I am always stumped because none of them ever shows the use of Rulers nor Guides. This article will try to convince you that Guides are even more important for Fluid Boxes design than for normal projects.

Fluid Boxes and Themes

There are some limitations when using Fluid Boxes. Some objects cannot be used: zoom object, highlight box, click box (if placed over another object), line shape and some possibilities for multistates. You cannot use groups neither. Most of those limitations are linked with the 2-dimensionality of Fluid Boxes. Static Fluid boxes are a workaround, but you'll lose a lot of 'fluiditiy4. I will talk about my personal workarounds for those limitations in a later post.

Less known are the limitations for Themes. I start every project, even a small one, by customizing an existing theme or creating a theme (based on the Blank theme). Such a custom theme will save a lot of time later on, if small design changes have to be done. THe components of a Theme are described in more details here.

Object Styles

Fluid Boxes workflow will save you time when setting up object styles for Text containers: captions and shapes. You don't need to set up the font size for different screen resolutions, as is necessary for Breakpoint views. Text will rescale automatically when the screen resolution changes. Maybe you'll have to decrease the minimum font size which is set to 14p (for Breakpoint Views it used to be 10p, still readable on smartphones). 

Master Slides

All the included themes in Captivate have Fluid Boxes on the master slides (the 'virgin' Blank theme has them only on the quiz/score masters) . Two exceptions: you  will not find Fluid Boxes on the main master slide, nor on the Blank master slide. You'll see a lot of informational stuff where every presenter starts always with a slide based on the Blank master slide because it is also 'virgin'. Be careful when editing the Blank master slide, because it is needed for PPT-import and software simulation slides, edit only a duplicate).

I found it clarifying to explore the Fluid Boxes on the master slides of the included themes. Result of that exploration were two blog posts :

  • Fluid Quiz Slides: describes the setup of Fluid Boxes for the Quiz slides; interesting is the use of the static Fluid Box for feedback messages. The Blank theme has the same setup as the other themes.
  • Fluid Boxes and Master Slides: explores the content master slides in the themes, and how to use them. 

During the research for this post I discovered that it is not possible to insert Fluid Boxes on the Main Master Slide. I am used to have some information on that Main Master slide, which I want to show on all slides. Here is an example of the bottom part of the Main Master slide:

That is not possible within a Fluid Box. I tried to set up the Position Properties (which are available) but often weird positioning showed up when published. It is not possible to have different font sizes: either you let everything rescale proportionally and get very small text on phones, or you have to keep the size in px which will maintain the objects and font size fixed. Not really a workable solution.

Alternative for objects which you want on all slides, is to put them on the first slide and time for the Rest of the Project. However you cannot time objects for the rest of the project when using Fluid Boxes, not a workaround in this case.

My solution: insert the objects on each master slide you'll need in the project in Fluid Boxes. That is where Guides are indispensable to me.

Fluid Boxes and Guides

Turn on the Rulers under the View menu and you'll see that they are in percentage, not in pixels as for normal projects? 

For all to be used master slides, I want a setup, with a Fluid Box at the bottom to accomodate the text and button(s) as shown above. That FB should have a height of 10%. That FB will be divided in two: 70% width to the left (text), 30% to the right (buttons). To achieve that, create two Guides

  1. Horizontal Guide at 10% from the bottom by double-clicking on the 90% mark of the vertical ruler
  2. Vertical Guide at 70% by double-clicking on the 70% mark of the horizotal ruler
  3. Lock the Guides (View, Lock Guides)
  4. Turn on "Snap to Guide" in View menu

The guides will be visible as well in Master Slide as in Filmstrip view. You can change guide color in the Preferences, Be sure to change the Guide% color.

Switch to the Master slide panel. You'll get the step-by-step work flow to add a 10% Fluid Box at the bottom of two master slides (Title and Custom master slide), and have two child fluid boxes in that first FB.

Edit Title Master Slide

All included themes (also the OldPaper theme I use in this example) have one Fluid Box on the Title master slide, filled with one Title Placeholder. It is not possible to add a Fluid Box, the button Fluid Box on the Big Button Bar is dimmed. To solve this and be able to recover the placeholder:

  1. select the placeholder
  2. check the option 'Unlock from Fluid Box' on its Properties panel
  3. drag the placeholder off the stage in the scratch area
  4. uncheck the option 'Unlock from Fluid Box', later on we'll drag it back on the master slide

Select the parent fluid box (drag a rectangle half off the stage). You can now insert two vertical Fluid boxes. You will have to change the setup of the Parent Fluid box. The wrap option 'Squeeze in a column' is fine as are the alignments, but in order to use all available space you need to activate the options Stretch to fit, both Horizontally and Vertically.

Use the horizontal guide to change the height of the bottom Fluid box. This Fluid box needs these settings:

  • Flow: Horizontal
  • Wrap: Squeeze in a Row (to have text and buttons alwas next to each other), 
  • Horizontal: Space Around (eventually define some padding) and Stretch to fit
  • Vertical: Middle Align and Stretch to fit

The top fluid box: I choose vertical Flow, kept all the other default settings.

You can now insert two horizontal Fluid Boxes and change their width using the vertical guide, Flow horizontal for both.

The left Fluid box needs to have Left Align horizontally and the right one Right Align. I choose a horizontal padding for both and a vertical for the right Fluid Box. You can now insert the text (doesn't have to maintain the aspect ratio) and the Next Shape button.

I dragged the Title Placeholder back on the slide and created this Title slide from the edite Title slide:

Custom Master Slide

If none of the content master slides fits your purpose, you can start from a duplicate of the Blank Master slide. Insert two vertical Fluid Boxes. Although that master slide doesn't have a starting Parent Fluid box, it will be automatically created when you insert fluid boxes. The work flow to set up the bottom fluid boxes is pretty much the same as for the main master slide. You can now add a Back button as well. If you want more fluid boxes, go ahead. Here is a example of a custom master slide, which you could try to reproduce: And get a (Belgian) beer after success.

Conclusion

Now it should be clear why I love the Rulers and Guides for designing any project, but especially when using Fluid Boxes workflow. The Guides which you set up are saved with the project, you can hide them from the View menu and they'll always be ready to help you out when necessary :)




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1184201 2017-08-16T18:59:46Z 2018-03-05T11:55:32Z Fluid Boxes and Master slides

Intro


A while ago I published a post explaining the setup of the Quizzing Master slides, compulsory parts of each theme, even the almost empty Blank theme. In this article I will try to explain my experiences using Fluid Boxes on Content Master slides. Most themes shipped with Captivate have several content master slides (exception = Blank theme). Let us first start with the master slides that are not behaving like the content or quiz master slides

Main master slide, Blank and Title master slides

Main Master slide

It is not possible to insert Fluid boxes on the main master slide: the button seems active but both options (Vertical and Horizontal) are dimmed. Objects placed on that Main master slide, and inherited by the daughter master slides, are to be set up using the Position Properties panel. Example: the text container with my name and copyright in the example movie.
However after some more testing on iOS devices, the Position properties set up for those objects are not correctly displayed in portrait mode. 
TIP: at this moment avoid putting objects on the Main master slide, since they don't display at the correct location on some mobile devices.

As you probably know, it is not possible to have shape buttons timed for the rest of the project when you use Fluid boxes. You could put a shape button on the main or one of the other master slides but you cannot control it because it has no ID. In the example movie I preferred to have a Next button on the individual slides, because ton most slides it is hidden until the learner has visited everything. However a toggle shape button for Audio, for CC, for the TOC could be on the Main Master slide. They will not behave like objects in a Fluid box however, but act as defined on the Position Properties panel for size and location.

Blank Master slide 

This master slide has no Fluid boxes by default but you could add them. As I have explained in previous articles, you should prefer to duplicate the master slide for editing, don't edit the original slide because it is used for Powerpoint import and for software simulations.

Title Master slide

That master slide has one Fluid box (parent fluid box) but no child fluid boxes. It is set up as 'Squeeze in a Column', and vertically and horizontally centered. Because the title placeholder is inserted directly in that parent fluid box, you are not able to insert child fluid boxes.  Because each new project, using the default theme White will start automatically with a Title slide, this has caused already many frustrations when starting with the use of Fluid boxes. If you want to use fluid boxes on the first slide, you have to change the master slide from Title to Blank (exception Blank theme which starts with a Blank slide).

TIP: if you want to add objects on the Title master slide, first take out the Title Placeholder, to be able to insert child fluid boxes. Then put back the Title Placeholder in one of the child fluid boxes.

Content master slides

It can be a time saver to use a content slide that has already Fluid boxes. In a future next article I'll explain how to create a custom content master slide with the help of Guides, but for now let us focus on an existing master slide, and see how we can tweak it.
In the example movie, the second slide is based on the Content04 master slide from the Theme 'OldPaper'. I didn't customize the theme, just applied the correction explained in my last post

Look at the setup of the Fluid boxes on the master slide: the parent fluid box (FB_15) has two vertcial child FB's (FB_16 and FB_17). The top one is meant for the Title placeholder: 

The bottom Fluid Box has 4 child FB's, (FB_19,FB_20, FB_21, FB_22), which are set up to wrap Symmetrically (when width is too small, two FB's will move to the next row), and have a padding both vertically and horizontally to have some spacing between the FB's. Each of them has a placeholder for an image.

Example movie

Play with this responsive movie (will open in a new window) which has only 3 slides: Title slide (with inserted Next button, and taking over my name from the main master slide), a slide based on Content04 master slide, with a lot of tweaking, and an End slide. The Next button on the second slide will only appear when you have clicked all available shape buttons and seen all the content. 

Refining slide based on Content master slide

The FB setup on the master slides can be tweaked on a slide based on that master slide. You can remove all fluid boxes, but that is has not much sense. To demonstrate I did a lot of tweaking for the second slide of the movie which you just watched:
  • I deleted the image placeholders


  • I decreased the height of the top fluid box (FB_MS2_16) to 10%, originally it was 15% (edited font style as well)

  • I added a third vertical child FB under the parent FB_MS2_15, it is labeled FB_9
    TIP: this will not affect the master slide, if you use Reset Master Slide button in the Properties panel of the slide, you'll get the original layout


  • That last FB_9 got two horizontal FB's, FB_37 (70% of the width) and FB_38 (30% of the width); the last one will be used for the navigation buttons (Back/Next)

  • The setup for FB_38 is visible in this screenshot
  • Each of the four FB's in the center (FB_19,FB_20, FB_21, FB_22) has no longer any object (see 1) and can be divided in two new vertical child FB's


  • As you can see on the screenshot, the top FB will have the button and explanation text (originally hidden, but cannot be grouped in FB's), the bottom one has an example of the style (also initially hidden).

  • Setup for the top FB's here is visible in this screenshot; for the Shape button ('Normal') the option Maintain Aspect Ratio is kept, but not for the Text container, so that it can change for smaller screen sizes (especially in portrait mode).

More questions?

You will have seen that I always had Rulers and Guides activated. My next blog post will focus on the use of that great tool, which almost no one seems to use?

Sure, I have several advanced actions in that movie, but that was not the goal of this post. No explanations here about those actions.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1182410 2017-08-10T14:09:17Z 2018-03-05T11:55:31Z Feedback shapes in Captivate 2017

Why this short post?


If you have read my article about the 3 most important stumbling blocks for Captivate (newbie) users, you'll know that Themes are amongst them.  The components of themes are described in What's in a Theme/template. and in this post you'll learn about he use of Theme colors. Almost daily I see questions, comments on the forums like "I don't use a theme" which is  - sorry for the word - nonsense because every project is based on a theme. The theme with the least intrusive design is the Blank theme, which has no color palette and only offers the minimum set of 6 master slides. 

The themes packaged with Captivate 2017 have some issues with the feedback messages:
  1. Hint shape is using the Success Shape Style, should use the existing Hint Shape Style

  2. Failure shape is using the Success Shape style, should use the existing Failure Shape Style
Shapes are set as default for feedback messages, not captions 
The feedback captions use an appropriate style in the themes Easiest way to solve the problem would be to change Preferences, Defaults and choose for captions if that is not messing up your design.  Below you'll read how to ecit the themes.

Where are default Themes stored?

The original themes can be found under the installation folder, in the Gallery\Layouts for the language you used when installing. I am on Windows, installed the US version of Captivate and the path on my Win system is: 
C:\Program Files\Adobe\Adobe Captivate 2017 x64\Gallery\Layouts\10_0\en_US. 
You'll also find the ThemeColors folder in that location. The included themes are: (Blank), Blue, Clear, Clean, OldPaper, Poise, Suave, White (which is the default theme). All themes are responsive, but can be used for normal, blank projects.

However, while working with Captivate, you will use the themes from a copied folder. In Windows that copied folder can be found under 
Users\Public\Public Documents\Adobe\eLearning assets\\Layouts.  
Reasons for this work flow are possibly:
  •  you cannot mess up the original themes
  •  the Public folder is accessible for developers which do not have administration rights. 

If a theme seems corrupted or is too messed up, you can always restore it by copy/paste from the Gallery (need for administration rights). If you have both CP9 and CP2017 installed, you'll see both Layouts in the copied folder. But the layouts folder for CP2017 has a subfolder 'bpthemes' containing all the CP9 themes on my system (not sure if that is the case when you only have a CP2017 install).

TIP: don't put custom themes in the sames folder as the default themes (Public). If you have to restore all themes by deleting the Layouts folder you will not lose the custom themes. I store them mostly with the project(s) they are used for.


Editing Default Themes 

Restoring the correct object style for the Failure and Hint shapes is pretty easy: open the Object Style Manager (SHIFT-F7), and replace the Success style by the appropriate style (which does exist) as you can see in this screenshot
image

I suspect you will want to keep the correct object styles for the feedback messages for future projects as well. Use the menu Themes, option Save Theme.  The result will be that the theme is edited in the copied folder, in the Public documents To change the original theme in the Gallery, you'll need to do it outside of Captivate, using Explorer and needing administration rights. However a user yesterday reported that the option 'Save Theme' was dimmed(?).  Reason was that he was working in a blank, normal project. All default themes in CP2017 are responsive. To protect the responsiveness, you have to edit the theme from within a responsive project. The option 'Save theme' will be available in that case. You can always use a responsive theme in a normal project.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1178368 2017-07-30T14:32:41Z 2018-03-05T11:55:31Z Internal and External Libraries

Intro

Reusability in Captivate is one of this tool's most amazing features,  but a lot of the (often time-saving) possibilities are not well known by (starting) users. When I mention the word  'external library' in a presentation I see a lot of confused eyes among the participants.  Even recently, based on an answer on the forums, someone sent me a message: 'What are you talking about, never heard about external libraries in Captivate, where can I find them?'. Time for a short blog post, with some efficiency tips about using the Library. Contrary to the Timeline panel which is hidden in the newbie UI (I consider this a great mistake), the Library panel has a big button on the Big Button Bar in the newbie UI. I'll take you on an overview of that panel.

The Help documentation is very concise about Library: https://helpx.adobe.com/captivate/using/captivate-library.html It has a description of the columns in the Library panel, which I will not repeat in this post.

Internal Library


Each project has its Library, I use the term 'internal' for the Library which is created with each project. In that Library several assets will be stored automatically in different folders when you insert them in a project (on the stage) or import them directly to the Library. Even when you delete the items from slides (stage), they will remain in the Library and can be reused. These are the default Library folders:
  • Audio: will have all audio clips, whether imported or recorded in Captivate; whenever you edit an existing clip, the original and edit clip will be in this folder. If you import a (compressed)mp3 file it will automatically be converted to a 'raw' wav-file which will also be in this folder. It is recommended whenever possible to import a wav file, when published it will be compressed to mp3 by Captivate.
  • Backgrounds: backgrounds used in project, master slides or created when recording a software simulation.
  • Equations: only for the versions that have MathMagic included (if you see it still in CP2017, which has no longer MathMagic, this is a bug). That folder will store the images created with MathMagic.
  • Images: has all used bitmap images of any format; exception are the images created from layers in an imported Photoshop file. When importing such a file an individual folder will be created (under the root, not under Images), with the same name as the PS-file, and having all the layers converted to PNG images. If you insert Characters (Media button) they will appear in this folder as well. Later on in this article you'll find a screenshot with an imported Photoshop file.
  • Media: will store video, animations...
  • Shared Actions: contrary to advanced actions, shared actions are in their dedicated folder in the Library, and they have all the possibilities offered to all assets.
  • SVG: stores all SVG (Scalable Vector Graphic) images
  • Web: for web objects
Under the Preview part, you'll find a Control panel with these 9 buttons:
  1. Open Library: is an alternative for File, Import, External Library (see sbelow)
  2. Import: you cannot import folders, but you can select multiple assets to import in one action. They will be placed in the folder for their type. You cannot import layers from a Photoshop file with this button, you need to use the menu File, Import, Photoshop File.
  3. Export: it is possible to export a number of assets to one location. Each will get its appropriate extension. If you never used shared actions, know that the extension 'cpaa' will be added for them. 
  4. Edit (CTRL-U): If you have associated an application for the asset, using this button will open the asset in the associated application. Examples in my situation: audio clip will open in Auditon,  SVG' in Illustrator, bitmap images in Photoshop. Alternative is using the right-click menu (but you'll have to use two clicks in that case), Edit with....If you have the asset Properties window open, you'll find an Edit button as well (see screenshot below)
  5. Properties: will open a window with asset properties; I almost never use that button but will double-click on the name of the asset (see Properties in the screenshot below). 
  6. Usage (CTRL-ALT-U): there is a column 'Use Count' as well, but this button opens immediately a list with all the locations where the asset is used. Alternative is option Usage in the right-click menu on the asset, or the Usage button in the Properties window (see screenshot below). In the screenshot you see that Usage counts also images used in object states.
  7. Update: if source files have been changed externally, you can update the assets in Captivate with this button. Need for updating is visible in the column 'Status' (red bullet)
  8. Select Unused Items: contrary to what some people 'believe' deleting unused items will only decrease the file size of the raw cptx file, not the file size of the published file. I prefer not deleting unused items until the project is finished.
  9. Delete

TIPS

  • Captivate users tend to insert assets one by one on slides using the Media Button. An alternative way is to import first (all) assets to the Library. From the Library you can drag them to the stage (or to an object). For audio clips, when dragging to the stage you'll have it inserted as slide audio, dragging to an object will create object audio. Same is valid for shared actions: dragging a shared action to the slide will create an On Enter action for the slide, dragging a shared action to an interactive object will create a Success action for that object.
  • You are not limited to the default folders described above. It is perfectly possible to create folders under the root and to create subfolders under existing folders. For complicated projects with lots of assets, I sometimes set up folders for each slide or slide group. Another approach if you take advantage of the great roundtripping possibility with Photoshop is to keep image assets for a slide or slide group in one Photoshop file. In that case I'm only talking about the bitmap images of course. For large, complicated projects both work flows will help to manage assets when the clients is asking for (last minute) changes. In the screenshot above Tips, you see an imported Photoshop file (Libraries_Small.psd), where I indicated 4 layers which have been converted to PNG-images
  • Even if you don't use custom folders/subfolders think about labeling assets that got generic names. A relevant example are audio clips generated by TTS. 

External Library

The Library of any project (has to be closed in Captivate) can be opened as a floating Library panel in a new project. You can open multiple libraries. You have two work flows to open such an external library:
  1. Use the first button in the Control panel of the Library panel (see above) and browse to the project (cptx)where the Library you want to use is stored.
  2. Use the menu File, Import, External Library and point to the project (cptx).
Opened External Libraries will appear in a dropdown list under the Open Library button:

In the screenshot below you see such a floating External Library to the left of the docked Internal Library. If you are using the Newbie UI you'll not be able to dock that External Library in any docking station (always recommend to switch to Expert UI). Its layout is totally similar to the Internal Library. The only way to recognize it as external, is the name of the Captivate file from which it was opened, and the presence of that same name in the dropdown list under Open Library button.


If you are not used to floating panels because you are in the Newbie UI, here are some warnings. 

  • Do not reset the Classic workspace while an external library is opened, or you'll lose it.
  • External libraries do not appear in the Window menu where you find most of the default panels. Only the internal Library (CTRL-ALT-L) can be switched on/off using that Window menu. 
  • The only way to close an external Library is with the Close button. That button is in the top right corner of the panel and pretty tiny, moreover the colors are grey on black which is not a very good combination for tired eyes:

You can use an external library (or multiple external libraries) exactly in the same way a the internal library: drag an asset to a slide, or to an object (for audio clips). However I will offer one recommendation for Shared actions (see more details in this blog post): I prefer to drag those actions first to the Internal Library, instead of attaching them directly to a slide (On Enter) or an interactive object (Success event). As you probably know, if a shared action is using a variable, this variable will automatically be created when using that action in a new project. To avoid problems with duplicate variables follow the recommendation of that mentioned article.

For all the copy/paste lovers: believe me, using assets from an external library is a much safer work flow than copy/paste objects between projects (one of the causes of corruption). 

Using external libraries can save time and help to achieve design consistency. For much used shared actions (like the toggle action described in this post) I have a dedicated project ready which I open as External Library in any new project. Images and SVG's, which I use all the time, are stored in another Libarry. I have an external library with sound clips that are useful. If you are a developer in a company, you see the advantage of using external libraries for sure!

(CC Libraries) 

This last part is 'wishful thinking': if you are a CC user like me, it would be a relief if we got access in Captivate to the CC Libraries. It would make the transfer of assets created with Adobe Color, Photoshop, Audition, Illustrator, Animate, Adobe mobile apps.. so much easier. Same is valid for managing Adobe stock assets, which can be inserted in CP. 

Captivate Draft has access to the CC Libraries, and could be used as an intermediate player: use it to retrieve custom color palettes, image and other assets. Once the Draft project is exported to Captivate, you'll have them in the Internal Library. But if you don't have an iPad, this work flow is impossible. Same when you don't use Draft for storyboarding but another application.

Please, log a feature request to support (one of) my Captivate dream(s)! 

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1166508 2017-06-22T14:51:13Z 2018-03-05T11:55:31Z 1-2-3 Eye Buttons Mystery
Title is not an nostalgic reference to the best spreadsheet application ever (Lotus 1-2-3) but is related to... Captivate.

The THREE 'eye buttons' in Captivate are a source of confusion because they have exactly the same look (contrary to my image above) but show very different functionality. 
Questions due to that confusion appear not as frequently as the timeline misunderstanding questions, but nevertheless think that a clear explanation could help to dissipate confusion:

1. Eye button on the Timeline

This button appears in the timeline panel in the first column, on top, next to the lock button. If you click the top button all objects on the stage are hidden. To hide individual objects, click a radiobutton left of the object timeiine. A red cross will appear (see screenshot below). A full explanation of this and other timeline features and can be found in this article. Hiding an object on the stage has no effect whatsoever on the presence of that object when publishing (or previewing) the course: the object will be visible. What is the goal of this eye button? As you know (if you did read the article about the timeline), contrary to normal video timelines (included the Video Demo Timeline), a cptx slide will show all objects on the stage, whether they are scheduled to appear from the start or later on. That makes aligning a lot easier, but can also lead to a very crowded stage where objects are covering up other objects (except in the case of Fluid Boxes). To facilitate editing, it can be useful to hide some objects using this first Eye button.

This screenshot, taken from the game explained in 'Using the While loop' shows several hidden (on stage) objects and even a group. Since the topmost group still has one visible object (click box), its bounding box is visible on the stage. For the other group even the bounding box has disappeared.

There is one exception: you can also click the radio button left of the slide timeline. In that case the slide will be hidden (with all its content) and it will not appear when previewing/publishing. It is an alternative work flow for using the right click menu on slide(s) in the Filmstrip, option 'Hide Slide'. With both work flows you'll see a dimmed slide in the Filmstrip and an eye icon (not a button) as indicator.


Eye button in the Properties panel: Visibility in Output  

If you want an object to be initially invisible in the published course, you need to click this button in the Properties panel (inspector) of that object, top left. It is almost the opposite button of the first because the object will not disappear on the stage at all. Why would you hide an object in a published course? Maybe because you'll want to make it visible later on.  Example: you want to allow navigation to the Next slide only after certain actions have been performed by the learner (like clicking hotspots, or entering text in fields). Showing an object will be done with the command 'Show'. Making an object invisible by using this second Eye button can also be done on runtime by the action 'Hide' and that is often a better approach.  Since you can show a hidden object, it means that the object is included in the published version which is not the case with a hidden slide. A hidden slide is not included in the published course.


Eye button in the Drag&Drop panel

When this button is set to 'active', and you did set up the Drag&Drop interactivity by defining the drag sources, the drop targets and the links for correct answers those three components are made visible: green rectangles for the drag sources, blue rectangles for the drop targets and blue arrows for the links. When you deactivate this eye icon, those indicators will disappear. Since it happens that Captivate deactivates that button without your consent, it is good to know how to make those indicators visible: click on the barred eye icon: 

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1157235 2017-05-29T19:01:52Z 2018-01-28T20:59:35Z Tips for 'Fluid' Quiz Slides

Intro

When publishing my first reflections on Fluid Boxes work flow versus Breakpoint View work flow I didn't mention my expectations for a smoother creation of Quiz slides using FB's. In my experience with responsive projects in previous versions, the most frustrating part were those (damned?) quiz slides. You are probably aware of the very strict rules to honor for quiz slides: need to be careful with 'embedded' objects which include functionality that can be broken. Styling quiz/score slides is tough even in normal (blank) projects and turns into a nightmare when having to do it for up to 5 breakpoint views. Every post I published about quizzes gets a lot of visitors. Many questions about quizzes are posted on the forums as well. This explains why I listed Quizzes as second most important stumbling block for Captivate users in this article.

The present post is not (yet) the promised upgraded version of the most popular article I ever wrote about questions, only a summary of tips I discovered while exploring the Fluid Boxes work flow for quiz slides (score slide will be subject of a later post). If you are new to Fluid Boxes, please take some time to read the articles posted by Zeeshan. Up till now, he published 3 but promised more on their way:

Using Fluid Boxes - Knowledge Facts 3

Quizzing Master Slides -Setup Fluid Boxes

All quiz slides, and the score slide, are based on a dedicated Master slide. Master slides have embedded objects (no individual timeline): Title, Question, Answer Area with Answers, buttons, feedback messages, progress indicator to mention some. The functionality of the quiz is embedded in those master slides (two-step Submit process, updating quizzing system variables, tracking attempts on question/quiz level, review and retake on score slide, etc). 

if you choose the Fluid Box work flow for a responsive project in Captivate 2017, the included themes will also have Fluid boxes on the quizzing master slides. There is one exception: the Likert master slide has no Fluid Boxes because Likert questions are not supported for responsive projects. Each theme needs to have at least a main master slide and 6 daughter master slides. Besides the Blank master slide which is essential for Software simulations and PPT-import, the other 5 daughter master slides are all about quizzes: MCQ,T/F,FIB,Sequence; Matching; Hotspot; (Likert = not supported in responsive); Result. 

The Setup for the quizzing master slides is common for all included Themes. I will explain extensively the most used master slide (MCQ, T/F...) and summarize only the differences for the other quizzing master slides. The score slide, which causes a lot of issues at this moment, will be explained in a future blog post, hoping that some of the problems will already have dissipated by a patch?

Setup Fluid Boxes in MCQ,T/F,FIB,Sequence Master slide

This is the most used master slide for sure. You have the Root fluid box (ID/ FB_8) containing 6 child Fluid Boxes. The ID's I mention for the Fluid boxes are from the master slides. Apparently the ID has to be unique as usual. When a quiz slide is created based on a master slide the ID will change: 3 characters will be inserted, referencing to the slide number. Example: FB_MS5_10 is the fluid box for a question based on the MCQ master slide, originally on slide 5. Beware: that ID will not change when you reorder the slides, which can make it quite confusing if you are used to reorder a lot. The Root fluid box (ID/ FB_8) is set up this way.

  • Flow: Vertical (has 6 child fluid boxes)
  • Wrap: Squeeze in a column , which means the child fluid boxes will never be rearranged. the 80% has no consequences, because stretch to fit is activated.
  • Horizontal Alignment: Center with Stretch to fit activated
  • Vertical Alignment: Space around
  • Padding: none, which means the space around has no effect on the child fluid boxes

The 6 child fluid boxes, from top to bottom,have this content and setup:

Title Fluid Box (ID: FB_9)

  • Flow: Horizontal - has mostly only one item, the title shape or caption
  • Wrap: Wrap to Next Row
  • Horizontal Alignment: Space around with 'Stretch to fit' activated
  • Vertical Alignment: Middle Align with 'Stretch to fit' activated
  • Padding: none, which means theoretically the title could touch the left and right side of the fluid box/slide. Personally I avoid that by adding a small horizontal padding (5-10px).

Tip: in theme 'Clear' the title overlaps with a design element. You can change the Vertical alignment to Bottom, and eventually increase the height of this first child fluid box to fix that. Another solution is to turn off that design element by unchecking the option 'Show Main Master Slide Objects.

Later on you'll see that the Advanced answers feedback messages will cover up this FB. Be careful when resizing and moving those messages. You could mess up the arrangement of this Title fluid box. Best way is to unlink those messages from the FB before touching them.

Question Fluid Box (ID: FB_10)

  • Flow: Horizontal (but has mostly only one item, the question shape or caption); text in that container is vertically aligned to top, to allow wrapping of longer text questins
  • Wrap: Wrap to Next Row
  • Horizontal Alignment: Space around with 'Stretch to fit' activated
  • Vertical Alignment: Middle Align with 'Stretch to fit' activated; for the inserted text placeholder text is aligned at the top; you could eventually change that to middle as well if you don't have long questions.
  • Padding:  50px horizontal (text placeholder is indented from left and right side of the slide/fluid box). If the focus is on smartphones, this padding could be too big (lot of smartphones have only a width of 320px).

Answers Fluid Box (ID: FB11)

  • Flow: Horizontal 
  • Wrap: Wrap to Next Row
  • Horizontal Alignment: Space around with 'Stretch to fit' activated
  • Vertical Alignment: Middle Align with 'Stretch to fit' activated; 
  • Padding:  50px horizontal (placeholder is indented from left and right side of the slide/fluid box); 20px vertical, the inserted answer area doesn't touch the top and bottom of the Fluid box. Comment about this being maybe too much for small screens is valid here as well.

Tips: the individual answer placeholders cannot be resized in the master slide (as is the case since CP6). They are designed to have only one line (contrary to the question placeholder which has space for multiple lines). If you have answers that are pretty long, font size will be decreased to squeeze the answer in the available space. If answers have different lengths, this could result in  different font size for the answers which is certainly not wanted (see image below). Here are two workarounds:

  1. If you don't mind the font size to be decrease but want the same font size for all the answers on a slide, check the option 'Enable Uniform Text Scaling' in the Properties panel for the slide. Eventually you can decrease the mininum font size which is set pretty high in 2017 (14p, minimum was 10p in previous versions).

  2. If you don't want to have the font decreased, but prefer text wrapping, you have to resize the individual answer containers on the side (not possible on the master slide). Start by increasing the container height for the longest answer, use the Align menu ro resize all to the same height, move them as far away from each other and Distribute vertically. Eventually you can decrease the vertical padding to have more space, and/or make this Fluid Box higher, which will decrease the height of the other boxes. This work flow is certainly necessary if you allow shuffling of the answers. Whenever the answer cannot fit in the container anymore the usual icon 'read more' will appear. 

In this image you'll see the result: Default setup on top, in the middle the result when 'Enable Uniform Text Scaling' is activated and at the bottom the same answers after manually resizing, moving and distributing vertically.

If your goal is a good experience on smartphones, I would recommend to reduce the padding in this Fluid box: 2x50px horizontally is a lot if the browser has only 320px in the width. 

Messages (ID: FB_15)

Since the Feedback messages are all in the same location, this had to be a Fluid Box of the Static type to allow overlapping objects. 

Issues: The usual problem for editing those messages remains: to edit a message you have to get all other messages out of the way, since they are embedded (they don't have a separate timeline). which means you cannot hide them on the stage  If the messages are the same on all quiz slides, you can edit them - before inserting quiz slides - in Preferences, Quiz, Default Labels (same for the button labels).
However if you want individual messages on the quiz slides themselves, I used to move each message to be able to edit the one below. Problem is that they will be moved over another Fluid box, and that means you cannot select them anymore.  I thought to use the Arrange menu but.... it is not available on quiz slides, only on the quizzing master slides! Not available in the right-click menu, dimmed in the Align toolbar. I tried to move the message in the scratch area (horizontally) for editing, but with the focus loss when zooming in, this is a real pain. Best way I detected (time consuming) is:

  • Edit the top most message in place (mostly Correct); since most of the messages are in a (semi) transparent shape/caption, increase the Alpha to cover up the other messages for editing.
  • Move the top message out of the way (I use shortcut keys like Shift-Up)
  • Edit the next message (same for Alpha as for the first one)
  • Move it also out of the way
  • Do not forget the Retry message if you have multiple attempts
  • When finished, use 'Reset Master Slide' to move all the messages back in their Fluid Box (FB_12). Since the object styles will be reset as well, the Alpha of the shapes/captions will be reset to the initial value. Beware: be careful not to override object styles in this case (indicated by + sign next to style name).

Here is some good news: if you choose multiple Failure messages (up to 3 still) because you have multiple attempts, those extra Failure messages (#2 and #3) will appear over the Answer FB. Contrary to messages moved over that box, these can be selected and edited easily. When previewing/publishing the slides all Failure messages will appear in the same location although being in different locations on the stage.

When using Advanced Answer options for MCQ, one correct answer, to show feedback messages for each answer, another problem appears.The text captions for the feedback are very small, and in the top right corner (over the Title Fluid Box), slightly off stage. Depending on the number of answers, some will appear lower, over the Answer Fluid Box.

Buttons Fluid Box (ID: FB_16)

  • Flow: Horizontal 
  • Wrap: Symmetrical, which is almost the same as One Row. Only when the number of buttons is even, will you have a rearrangement in two rows.
  • Horizontal Alignment: Space around with "Stretch to fit" not activated
  • Vertical Alignment: Middle Align with Stretch to fit not activated
  • Padding: 0px horizontal and 2px vertical

The maximum amount of buttons is 6: two Review navigation buttons, Clear, Back, Skip and Submit. If you are used never to insert Back and Skip buttons (which is my normal setup) you can better increase the font size (now 20px) to 28px or even 30px. If the option 'Enable Uniform Text Scaling' enabled, the label will rescale nicely and especially the small symbols << and << on the Review navigation buttons will be readable even on small screens. The buttons don't have the option 'Maintain aspect ratio' enabled, which means that the width only will be resized.

Progress indicator Fluid Box (ID: FB_17)

  • Flow: Horizontal 
  • Wrap: Wrap to next row.
  • Horizontal Alignment: Center Align "Stretch to fit" not activated
  • Vertical Alignment: Middle Align with Stretch to fit not activated
  • Padding: none

This fluid box has only one text caption with the progress indicator, in font size 12p which is smaller than the minimum font size. The text will never rescale even if 'Enable Uniform Text Scaling' is activated.

Setup Fluid Boxes in Matching Master slide

This master slide has one extra child Fluid box for the Column Titles. The Answer Fluid box is bit different. The ID's of the fluid boxes on this master slides are:

Root Fluid Box FB_18

Title Fluid Box FB_19

Question Fluid Box FB_20

Column Title Fluid Box FB_21

  • Flow: Horizontal, has two text placeholders for the column titles
  • Wrap: Squeeze in a row.
  • Horizontal Alignment: Center Align "Stretch to fit" not activated
  • Vertical Alignment: Middle Align with "Stretch to fit" not activated
  • Padding: none
  • Answer Fluid Box FB_22: this Fluid box has now two answer areas, linked by the line indicators
    Messages Fluid Box FB_23
    Button Fluid Box FB_24
    Progress Indicator Fluid Box FB_25

    Setup Fluid Boxes in Hotspot Master slide

    This master slide has only 5 child Fluid boxes, because Question and Answer are now in one box. Moreover it is a Static box, which means overlapping objects are possible. These are the ID's of the boxes:

    Root Fluid Box FB_26

    Title Fluid Box FB_27

    Question Fluid Box FB_28: static fluid box, will contain the image with the hotspots

    Messages Fluid Box FB_29
    Button Fluid Box FB_30
    Progress Indicator Fluid Box FB_31

    General tips

    I would recommend to activate the option 'Enable Uniform Text Scaling' for question slides in most circumstances. Since this option is at slide level, it will be valid for all Fluid boxes on the slide. 

    Avoid to override object styles, that is a general rule but even more necessary for quiz slides. It will happen that you want to reset the Master slide and in that case all styles will be reset to the Default style. If you want to change a style, do not hesitate to save the edits to those default styles. 

    Preview is never WYSIWYG certainly not when you are using the slider during preview to see the changes for other screen resolutions. Example: it often happens during Preview that the text in long answers (even when manually resized and redistributed) seem to be cut off for small screens; when published all looks mostly a lot better. 





    ]]>
    ir. Lieve Weymeis
    tag:blog.lilybiri.com,2013:Post/1153852 2017-05-15T10:18:40Z 2018-03-28T07:24:51Z Playing a dice game, using While loop

    Intro

    In a previous blog post I explained the ins and outs of the new Advanced Actions dialog box. If you feel confused about my terminology in this more practical blog post, please read that first article. A decision block of type 'While' is totally new in version 2017. It has some similarities with the Conditional decision block (IF, Then, Else) but offers new possibilities as you'll see in this simple game.  The While loop can be used to create a looping sequence of commands. That loop can be infinite, or limited in number of executions, based on one condition or a combination of conditions.  Mohana Das from the Adobe team published recently this article demonstrating the infinite While loop. Please read that article, for users familiar with advanced actions the used condition 'IF 1 is equal to 1' will be easily recognized, since this was the condition needed to create a mimicked standard action decision in older versions. It means that the sequence of commands will continue to be done, since that condition always results in True. In a future blog post, I will offer some tips about breaking such an infinite loop.

    The present article  will focus on using the While loop, based on a condition which results in having the commands sequence repeated a limited number of times. It is a very simple game, every object was created within Captivate. One exception: the color shift in the Characters was achieved using roundtripping with Photoshop.

    It is not a responsive project, to avoid a too long article (should have to explain setup in fluid boxes with logic of the variables and advanced actions). Maybe in a next article?

    Play first!

    Download this published folder (HTML5). Sorry, cannot embed it in this post (allows only SWF's and it is not playing well in Flash output). Unzip the folder, launch the index.html file to start playing.  It is a small game: when you click on the Play button, a dice will be rolled and you'll see one of the faces of the dice, indicating a (random) number. The girl is supposed to climb the stairs, she will go up as many steps as the number you won. The goal is to reach the top. When the girl reaches the top of the stairs, clicking on the Play button will result in another scenario, and a Reset button will appear. 
    On entering the Game slide you'll see two looping animations, with added randomness and a possibility to stop the the looping. You'll see this action in Preview, but I will not provide details. 

    Slide setup - preparations

    Have a look at the timeline of the Game slide:
    I created the stairs as a freeform shape. That was pretty easy with Guides (see Guides Rule) and Snapping to guides. Of course a better approach would be to create that shape in Illustrator with export to SVG, but it is always a challenge to use only the available Captivate tools.

    Dice: this is a multistate object, the normal state is a square shape, for each of the sides circular shapes with a gradient fill are added. Look at  the Object state panel for this object. 
    The 3D animated dice has also been created as a group from a lot of shapes.

    Effects - Characters
    Two custom motion effects were created for the climbing girl. Default effects couldn't be used in the advanced action, because the path had to be edited. Here are two screenshots of the custom effects: Impatience (before starting game) and StepUp  (during play).

    The original Character (climbing the stairs) will disappear with a default Exit effect 'Zoom out'. when the top is reached.
    The Sticky image that replaces the original one climbing the stairs, will get a default Entrance effect 'Drop in and Bounce'. The text panel in that image is covered with a click box, functioning as a Reset button.
    Play button: is a simple transparent button. 

    Variables (for game only - more are needed for the start animation)

    I created 5 user variables:  
    • v_dice: starts with an empty value, will get a random number between 1 and 6 (using JavaScript, see Playing with Numbers)
    • v_counter: starts with a value=0 and will be used in the condition for the While loop to fix the number of repetitions to match the random number in v_dice
    • v_stair: is a second counter, that will be used to keep track of the total number of steps done. It is needed to know when top is reached. The staircase has 16 steps. It also starts with a value=0.
    • v_null: empty variable (see...) used to reset the v_dice variable after each use of the Play button
    • v_roll: starts with a value=0, will track the number of dice rolls needed to complete the steps; that number appears after the top of the stairs is reached. It is a third counter.

    For the EnterGame action a 6th variable v_anim is used.


    Events and actions

    The three used events for the game are:
    1. Success event of the Play button, it will trigger an advanced action PlayAct
    2. Success event of the Click box (Reset) it will trigger the advanced action ResetAct
    3. On Enter event of the Game slide, which triggers the animations: EnterGame

    ResetAct triggered by Click Box

    I couldn't use Scenario 2 of the Replay Slide blog post.  There are a couple of reasons, one being that the Game slide was originally the only slide. It is never a good idea to start a project with a complicated On Enter action (as is necessary for the looping animation). The workaround is to have a short dummy slide (mine is 0,2 secs) before the game slide and use this Reset action:
    Due to the command 'Continue', the On Enter action of the game slide (second slide) is always executed. At this moment for HTML5 output this is not the case when using micronavigation (as in the blog post about Replay slide).

    PlayAct triggered by Play Button

    The PlayAct has 3 decision blocks, one of each type: the first decision is a standard action (sequence of commands), the second is a While loop based on a condition and the last decision is an IF condition, in previous versions labeled as a conditional action. Here is the Preview:

    Decision 1 'Random'  (standard action)

    With this sequence, the 3D dice (animated On Enter) will be hidden and replaced by the static dice in its Normal state.
    The one line JavaScript will generate a random number between 1 and 6
      window.cpAPIInterface.setVariableValue("v_dice",Math.floor(Math.random()*(7-1))+1);
    I explained the construction of this line in detail in this blog post

    The variable v_counter is reset to 0. It is important that this is done before the While loop in the third decision.

    Decision 2 'EndCheck' (conditional IF action)

    This decision checks if the character has reached the top by comparing the user variable v_stair with the total number of steps (16). Contrary to v_counter, v_stair is only reset to 0 when re-entering the Game slide (using ResetAct).

    The Play button is hidden (to avoid disturbing the rest of the sequence) and the static multistate dice.

    The original character disappears, is replaced by a group (character + click box + text balloon) with some default effects.

    If the condition is not fulfilled (ELSE), which means the top has not yet been reached, the variable v_roll is incremented by 1. 

    Decision 3 'ShowNumber' (While loop)

    The condition used to limit the execution of the commands in this loop, is a combination of these two (AND):
    1. The number of steps taken by the image cannot go beyond the random number stored in v_dice (see first decision) and
    2. The total number of steps done, stored in v_stair, cannot be greater than 16, number of steps in this staircase.

    The commands to be done while that AND combination results in True are:

    • Switching the static dice to the next state (see image of the Object states for this static dice above)
    • Character gets on the next step (using custom effect StepUp, but that name has been changed by Captivate to the name of the effect it was based on 'RightToLeft'.
    • The variable v_counter is incremented, it is this variable which is used in the first condition
    • The variable v_stair is incremented; that variable is not reset by clicking on the Play button, is necessary to check if the top is reached (decision 2 'EndCheck').

    EnterGame triggered by the On Enter event

    Here is the Preview, let me know if you need more details

    Questions?

    Fire away. Creating this game was a lot of fun, 'while' exploring 'while' loops. Let your creative juices surge!

    ]]>
    ir. Lieve Weymeis
    tag:blog.lilybiri.com,2013:Post/1150332 2017-05-01T15:30:23Z 2018-06-26T16:53:26Z Advanced Actions Dialog box in Captivate 2017

    Intro

    In my previous blog post about my preferred new features in Captivate 2017 I mentioned that the dialog box for Advanced Actions got a nice new layout. It is like new shoes, sometimes it takes time before they feel as comfortable as those old sneakers :). The focus of this article is on clarifying that new dialog box. Maybe you'll discover some unknown gems here as well? I recommend to download the example published file, or watch it (as SWF output) in that article if you are using a Flash enabled browser on a desktop or laptop. 

    Structure - sections

    The dialog box still has a fixed size (I wished it could be resized) and in this screenshot I indicate three sections, which I will explain more in detail below:

    1. Section 1: with the Global control panel to the right, two dropdown lists and the Action name field. That field has to be filled in for an advanced action, but not when your goal is to create a shared action (see Dare To Share).

    2. Section 2: has the control panel and navigation possibilities for the Decisions. Decision is the name used in the official Help documentation for those parts of the action that have the generic names 'Untitled_1'...(and function as buttons to navigate to a decision). When opening the dialog box a default number of 3 decisions will be present. You'll see in the screenshots that I am used to rename those decisions, certainly for an action with multiple decisions.

    3. Section 3:  shows the type of decision, has the control panel for the Commands or actions. I prefer the word commands to avoid confusion. 

    Nothing has changed at the bottom of the dialog box, with the buttons Usage (for the active Advanced action; for Shared actions you'll find the Usage button in the Library), Variables (which allows you to open the Variables dialog box if you want to create more user variables or check the available variables, you cannot delete variables when entering the dialog box from this button), Save as Shared Action... (will open the Shared Actions dialog box), Save or Update Action and the Close button.

    Section 1: Global

    On the first row you'll have:

    • Create from: followed by a dropdown list. I call this the actions template list. It will have the default template 'Blank' on top, but also the name of all shared actions in the project. One of the possibilities of shared actions is to use them as a template for a normal advanced action. The list is not alphabetically ordered. You can type the first character to navigate to a template starting with that character.
    • Control panel with 6 buttons
      • Preview button: this button is still unknown by many users, and has become even more useful than before. In previous versions you could only see a conditional action in this Preview, but since the former standard actions are now embedded in the same interface, you can also preview standard actions. Here is a screenshot of such a simple standard action. Watch the indicator 'Execute Actions' which means that this is a standard action. 

        The biggest advantage of the Preview window is for advanced actions with a lot of decisions, because you'll get an overview of all decisions. However: the operators for conditions (like 'is equal to ') are translated in the JS and AS equivalents (== means 'equal to', && means 'AND"). Parts of the decisions are collapsed in this example (triangle buttons):
      • Create New Action is the + button. It is no longer necessary to choose first of all the type of action, which was the case in previous versions.

      • Import Shared Action: works only for shared actions (doesn't appear in the tooltip). That same button is to be found in the Library. Personally I always prefer to import (and export) shared actions from the Library.

      • Export Shared Action: works only for shared actions (doesn't appear in the tooltip), same button as in the Library. 

      • Delete Action will delete the active action

      • Duplicate action: can be very useful. In some instances duplicate advanced actions are to be preferred to shared actions (maybe a future blog post).

    On the second row in section 1 you see;

    • Action name: compulsory for advanced actions. Be careful with names (sorry for the repetition), do not use names that are used for other items.

    • Existing Actions: has a dropdown list, ordered alphabetically. You can type the first character to navigate to an action starting with that character.

    Section 2: Decisions

    This section has these items, starting at the top left:

    • Control panel with 3 buttons (which now are not as tiny as they used to be in former versions):
      • Add decision (+ button): the decision will be added after the active decision (its name is bold and blue, non-active decisions have their name in regular black font).

      • Delete decision: active decision will be deleted

      • Duplicate decision: very useful. Look above at the second Preview example where decisions 4 and 5 are very similar to decision 3 and have been created with this button.

    • Previous/Next buttons: will navigate and make that previous or next decision active. These button have also 'grown up' :)

    • The last group at the right is also a navigation panel, but will mostly be dimmed, unless you have more decisions that can fit in the fixed width of the dialog box as you can see in this global screenshot:

      Those buttons allow to navigate, but will not select the decision you are navigating to, the present decision will remain active. First button scrolls to the first decision, second/third to the previous/next decision without making them active, last button scrolls to the last decision. Personally I suspect that I will not use those buttons often because you have another way:

    • Dropdown list with names of all the decisions is to be found under the triangle button at the end of the line with the decision buttons (which you can of course also use to navigate to a button). Of course, I am a labeling freak as you can see in the screenshot. When you select a decision from this list you'll navigate to that decision and it becomes active. Beware: the width of the dropdown list is limited, use short names or at least have significant characters at the beginning of the name. The list is ordered in the sequence of the decisions, you can use a first character to switch to a decision name starting with that character. More reason to label: if you leave all names at Untitled, you'll not get any help from 'U


    Section 3: Commands

    Select a decision by clicking on its button (Untitled_x as generic name or with a custom name). It is possible for each decision to choose its type: Standard, Conditional IF, Conditional While (loop). Look below for the differences. In this section you'll see several instances of the same control panel with a sequence of 8 buttons, some having a shortcut key (I use a Win system):

    1. Add (CTRL-N) will add an extra line after the last line of that part
    2. Remove (Delete): deletes the selected line(s)
    3. Copy (CTRL-C) will copy the selected line(s).
    4. Cut (CTRL-X) the selected line(s)
    5. Paste (CTRL-V) copied or cut lines: will work in between actions as well, as long as it is in the same part (depends on the type of decision)
    6. Insert (CTRL-I) will insert an extra line before the selected line
    7. Move Up: the selected line(s), can be useful because of the importance of sequence of commands.
    8. Move Down: the selected line(s), can be useful because of the importance of sequence of commands.

    Type 1: Standard 

    If you leave the check box before 'Conditional action' unchecked, you are ready to create a sequence of commands, formerly named a 'standard advanced action'. This screenshot shows such an action and before (under Control panel of the Global section 1 I showed a Preview of such an action):

    This type has only one control panel, since there is only one part in this type: the list of commands that have to be done in the chosen sequence. As told before, you can select a number of commands and paste them to the clipboard. They can be used within the same advanced action, in other decisions of any type, but only in the so-called 'Actions' part. However you can paste the copied lines also to another advanced action, with the same restriction.

    Type 2: Conditional IF

    To create a decision of this type, you have to check the check box  before 'Conditional action', and choose the option 'IF' in the dropdown list as is visible on this screenshot:

    This screenshot shows two parts of the complete decision, to see the last part 'ELSE' you have to click on the ELSE button at the bottom of the Actions part in the first screenshot:

    The three parts of this action: Condition, THEN (is not mentioned like that, second part under the Condition, ELSE have a control panel as described before. You can always copy/paste between the Actions part (THEN and ELSE), but the Condition part is 'standalone'.

    The first screenshot also shows the dropdown list, because you can define different conditions with AND (all conditions have to be fulfilled), OR or a combination of both (be careful with the last option).

    Type 3: Conditional While (loop)

    To create a decision of this type, you have to check the check box  before 'Conditional action', and choose the option 'While' in the dropdown list as is visible on this screenshot:

    For the Conditions the situation is identical to Type 3 (AND, OR, Custom). This type has only two parts however: the Condition and the list of commands that have to be repeated as long as the condition part results in True. Two parts means two control panels, not interchangeable. But you can copy/paste from another decision or action, as long as you remain in the same part (condition or Actions). 

    Conclusion

    I hope this bit boring overview was useful for you. Promised: next blog posts will be practical, still busy with examples concerning Pausing the Timeline (focus on audio). Explanation of usage of the new While loop, with some examples is on the way as well.  Not to forget: the very useful integration of Go to Next/Previous State in advanced actions: you'll get a tutorial for a user controlled or non-controlled presentation as well.

    TIP: for complicated actions with many decisions of all types, I add an extra character to the name: '..._S' for a standard decision, '...._C' for a conditional IF decision, and '...._W' for a conditional while loop. Easier to identify.

    If you have questions, issues with the Advanced actions of any kind, please fire away!


    ]]>
    ir. Lieve Weymeis
    tag:blog.lilybiri.com,2013:Post/1148543 2017-04-26T10:28:34Z 2018-03-01T16:10:40Z Captivate 2017's gems

    Intro

    About two weeks ago Captivate 10, now labeled Captivate 2017 was released. If you did visit my blog in the past, you know that I prefer to wait a while before posting my first impressions. My focus is also more on the non-hype features added in this release, I call them the 'hidden' gems. Some are mentioned in the documentation, some not.

    Retina screen - software recordings

    Captivate 9 was the first release which could be used on retina screens. However to record a Video Demo or a Software simulation you did have to edit the AdobeCaptivate.ini file. It was a solution, but bit cumbersome. After the capture process you had to edit that same file again to be able to use Captivate on that screen.

    Tip: when using Windows 10 as OS, be sure to check the Display setting before recording a Video or a Software simulation. Bu default it will be set to a number higher than 100%. To record you have to reset it to 100%.

    In Captivate 2017 this is no longer necessary, thanks to the Adobe team!

    Advanced Actions enhancements

    The Advanced Actions dialog box has been refurbished, and many will have emphasized that it is now easier to combine standard with conditional actions. Personally I don't find that so important because the condition 'IF 1 is equal to 1' worked as well, but much more has changed. I will post an article later explaining the changes in the dialog box more in depth. 

    Enhancements Decisions

    The existing functionality for multiple decisions in former versions has been preserved: adding decisions, moving decisions, duplicating decisions. The buttons got another look as you can see on this screenhot. There has been added two extra time savers,  if you have a lot of decisions in one advanced action:

    • A dropdown list showing all decisions, and allowing you to navigate and select  a decision (Section 3, to the right)
    • A control panel to scroll to the next, previous decision, and to the Last and First decision (Section 2, to the right).

    Added commands

    I am very happy that the commands 'Go to Next State' and 'Go to Previous State' (one of my first feature requests when multistate objects appeared) are now available in the list with commands in the Advanced Actions. In Captivate 9 there were only available as simple actions (Actions Tab dropdown list). This improves efficiency quite a lot, as you will see in the example movie below.

    While loop

    It has taken a 'while' but finally we have a looping possibility in Advanced actions, no longer needed to switch immediately to JavaScript. In combination with the command 'Delay Next Actions.... ' a lot is now easier in advanced or shared actions. Just one pretty easy example: create a countdown animation by combining a counter variable, a while loop, an effect and that Delay command. While loops can be combined with standard and conditional decisions as well.

    Example movie

    This short example has two slides:

    • First slide shows a countdown animation and a progress bar. That slide is using the new While loop. Use the Start button to see the animation. When the animation is finished you'll get a Reset button. Here is a screenshot of the used action (Preview). .
    • The second slide is using the "Go to Next State" command both for the text items and the images with the sticky character. Use the Continue button to go to the next state. When all states have appeared, you'll get a Reset button.

    Test this movie out, if Flash player is enabled in your browser:


    Typekit integration

    Finally we have access to the Typekit Library (I'm used to it using CC applications)! In the example movie I used two fonts which I already acquired with a CC subscription (Fira Sans and Rosario), but Typekit also has a free license. You have to check it out, time to get away from those limited set of websafe fonts. When publishing with Typekit fonts, you'll need to add a domain name. For testing purposes you can choose for 'Local host'. If you are collaborating on a project, you'll have to be sure that the collaborators have a Typekit license as well. In that case when opening a Captivate project, Tk fonts will be synchronized on their system.

    Responsive projects

    A lot of articles and tutorials have been published already to acclaim the use of Fluid boxes in responsive projects. However I am also happy that the 'old' way with Breakpoint views is still available as well. If you upgrade a responsive project from a previous version (8 or 9), it will automatically show in the Breakpoint view mode, since the development has happened in that mode. After two weeks with Fluid Boxes in CP2017 I don't have enough experience yet to judge their full power. My first impression is that the kind of project will indicate (dictate?)  the choice of the development work flow:

    • Fluid Boxes mode development will be a big timesaver for text-heavy projects. No need to check all text container styles for font sizes in all breakpoint views, no need to adapt the margins, leading to have text fitting in a text container on any mobile device.
      The continuous slider to see the changes for all possible browser resolutions is great!
      The design of a responsive theme with fluid boxes needs a different set of mind: how to set up the grid with Fluid boxes in content master slides. 
      The minus point of working with Fluid boxes is that you lose some control. My teacher's experiences learned me that you cannot use the same layout on a smartphone as you use for a laptop or even a tablet screen. That will make using Fluid boxes not appropriate for all courses. If you are a die hard designer, maybe you will not like the way that objects will be handled when the browser resolution changes? 
      Objects in a Fluid box are essentially in a 2D space: you cannot have overlapping objects. That is the reason why the Help explains that Zoom objects, Highlight Boxes and Click boxes are not allowed in a FB. The line object and mouse objects are excluded as well. However you can use them in a static Fluid box.

    • Breakpoint mode development is a lot more work, but gives you more control for layout differences between devices and for design. You can have overlapping objects, and with the exception of the Rollovers almost anything can be used.

    Tip: to switch to Breakpoint view development use this option in the Project menu:

    The possibility to change a normal (blank) project to a responsive project is a much asked for, very useful addition. The reverse is not yet possible, responsive to non-responsive.

    After some more experience with using Fluid Boxes, my opinion could change of course. Anyway I am persuaded already that the customisation of the theme is more important than ever. If you wonder why, maybe have a look at this article: 'What is in a Theme/Template?'

    Update August

    This week I discovered an undocumented enhancement thanks to a user on the forum: 

    https://forums.adobe.com/message/5077114#5077114

    When using the Submit All feature for a quiz, up till now it was not possible to localize this popup dialog box (style can be changed using the Object Style Manager):

    In Captivate 2017, the dialog box whidh appears when you click the option 'Submit All Messages in Quiz, Preferences has all you need to localize everything. In previous versions this dialog box had only 3 items.

     

    More?

    This personal view on the new features/enhancements in version 2017 (10 under the hood) is based on a limited time of exploration. In a future blog post (or showcase) I will give more details about the creation of the example movie. As promised, the overwhelming number of buttons and features in the new Advanced Actions dialog box will be the subject of another tutorial. At least, if you find this useful?






    ]]>
    ir. Lieve Weymeis
    tag:blog.lilybiri.com,2013:Post/1143672 2017-04-03T18:58:42Z 2017-04-04T10:27:41Z Interactive Video Buttons

    Intro

    When I posted the article about Pausing the Timeline (part of the sequence of articles about that most important panel), I promised to add some use cases to illustrate using pause and pausing points. Let us start with a  simple use case, based on a recent forum question in this thread: Interactive Video Buttons


    Use Case - description

    It is clear that the user is not aware of the difference between pausing the timeline by an interactive object (pausing point) and by the command Pause. The idea is that the learner, while a video is playing, can launch a popup that has some static content (text, images...). While that popup is opened, the video should pause. On closing the popup the video should resume playing. The user proposed to have a close button for that purpose, which is the easiest solution (Scenario 1 below).   hyperlink instead of the close button as I described in this article: More is in a hyperlink - Close button

    It could also be done with defining the open button as a toggle button Scenario 2).

    For both scenarios it is necessary to insert the video as a multi-slide synchronized video to be able to control the video with Captivate functionality. If you insert the video as event video it will play totally independent from Captivate.

    Scenario 1 

    In this scenario the popup will appear with one button, and be hidden by another button or hyperlink. 

    This makes it possible to have two actions, simplifies the setup: no need for a variable, no need for a conditional action. You can use two standard actions. If you want multiple buttons and popups, or expect to be using this work flow in other projects, I strongly recommend to create shared actions instead of advanced actions. This article will describe only the advanced standard actions.

    Have a look at the setup of the slide. Look at the Timeline panel. It has only 3 objects (from bottom to top: video, shape button, popup). In the screenshot the shape button SB_Info is selected. It will open the popup 'Info'. Look at the Timing properties of the button. The option to pause is unchecked (which is not the default situation), the shape button is timed for the rest of the slide. The result is that the button will be active for the whole slide, there is no inactive part. 
    The popup in this example is a shape used as text container, labeled 'Info'. That popup has to be invisible in output (eye icon in the Properties panel). If you expect that the slide can be revisited,  a better approach is to use the On Enter event of the slide to hide this popup 'Info'. To close the popup I preferred using a hyperlink over a close button.  The popup is ta single object. If you prefer to have a 'real' close button, you'll end up with two objects (text +  button). In that case you can group them, to reduce the number of commands for showing and hiding.

    Standard Advanced Action ShowContent

    This action is triggered by the Success event of the button SB_Info as you see in this screenshot:

    After showing the popup (only one text container, can also be a group), I choose to disable the button SB_Info. If you want it to more user friendly, you can add a custom state 'Inactive' to that button and change to that state. This will avoid confusion for the user, some may expect that button to be a toggle, which is not the case in this first scenario. The last command will pause the timeline unconditionally, resulting in both video and audio to be paused.

    Standard Advanced Action CloseContent

    to be triggered by the hyperlink over the big X character:
    if you prefer a Close button, this same action will be triggered by the Success event of that button; you can use exactly the same action. If you are using a responsive project, or HTML5 output only, the work flow with a button is to be preferred because the hyperlink event is not to be trusted with HTML5 output.

    It is a similar advanced action (use the duplicate feature), with three commands which are the opposite of those in ShowContent: Hide (was Show), Enable (was Disable), and Continue which will release the Playhead, both video and audio will resume.

    Scenario 2 

    In this scenario aToggle button is used both for opening and closing the popup.

    In that case you can use an approach similar to what I explained in: 1 action = 5 toggle buttons
    It is a little bit more complicated because:
    • You need an extra custom state for the popup button which indicates that it changes to a close button after having opened a popup:
    • You'll need a variable to track the status: I will use v_visib, a Boolean, with value = 0 when the popup is not visible,
      and value = 1 when the popup is visible; since I used a shared action from an external library, that variable is created automatically.

    • You'll need a conditional advanced action to be triggered by the Success action of the button:, this is the advanced action version created based on the shared action:

    More Possibilities

    An interactive video will often be spread over multiple slides, to offer navigation buttons to different parts of the video. It is not a problem to have the scenarios available on all slides: time both the button and the popup groups for the rest of the project, always on top.

    I mentioned the possibility to group a close button with text, but groups with more objects are possible as well: image, shape, animations. Group all together, hide the group On Enter for the slide, and you only have to replace the single object in the scenarios above by the group. 

    Turn the actions into shared actions, and keep them in a separate project. You can open the Library of that project as an external Library in future projects. Especially the toggle action, it will save time because you don't have to create the user variable.

    Future use case, example of Pausing the timeline, will be about audio. It is more complicated because there are several ways to use audio in Captivate, perhaps I will need more than one post.

    ]]>
    ir. Lieve Weymeis