Naming conventions in development

First of all, what are naming conventions? Good question! Our definition first, then we’ll share some wider thoughts on the topic. Naming conventions allow us to apply a pattern and standard to the way we name things within our computer environment. This could be from names of actual files, to folders, to how we store contacts in a CRM (“First name, Last name” or “Last Name, First Name” for example). If we have a standard by which we name things, it makes it easier to search, organise and see at a glance, what things actually are.

According to Wikipedia, “A naming convention is a convention (generally agreed scheme) for naming things. Conventions differ in their intents, which may include to: Allow useful information to be deduced from the names based on regularities.”

Read our full blog post here –

image from Pexels

Depth of Field Photography of File Arrangement

The post Naming conventions in development appeared first on eLearning.

Naming Conventions

Is there a list anywhere of naming conventions that Captivate uses?

And a best practices list of how to name objects and etc that we create in Captivate?

Clicking Search in Community I’m not coming up with a good clear idea of best practices for naming.  I did see v_ for variables.  And disliked the suggestion to include the slide number (which can easily change as new slides are added).

The post Naming Conventions appeared first on eLearning.

Time in Captivate – Building a clock (Part 1)

Hello Captivaters !…

After playing with variables concerning the Time (see Part 1), I thought I would be able to build a clock easily !…

In fact that was not the case… I think that the problem is that we can run actions “on entered” or “on closed” a slide, but not during it… (I even tried the “while” option with advanced actions without any success… ).

So I had to cheat !!!…


Do you have a better solution ?…

In my next attempt, I will try to do the same but with an additional javascript like “rotate.js”…

Happy Captivating !…

The post Time in Captivate – Building a clock (Part 1) appeared first on eLearning.

Building A Calculator – Part 3 – Numbers on the Display

In the last two posts, I presented a basic calculator and also a quick rundown on creating the framework – or really just the graphical elements of the calculator itself. In case you missed those, you may want to catch up – with the following links.

Part 1 – The Calculator

Part 2 – The Framework

In this post, I want to work through the code used to put the number buttons (0-9) on the display as well as the decimal as that is a part of the numbers.

When I first got started on this project, I thought I would use the concatenate technique to populate the numbers to the display. Initially, this seemed to work OK as I played with whole numbers 1 through 9. The tricky part is that every number button press needs to update the same variable until a function button is pressed. Concatenation seemed a good fit for this. I ran into issues when it came time to add the zero or a decimal point though. What was odd is that with the zero – it was fine if the zero were part of a number such as 207 but would sometimes struggle with numbers like 0.007 where there were leading zeroes or 2000 where there were trailing zeroes. In some cases, Captivate merely stripped the zeroes and in other cases, they did not appear until the button was pressed a second time or until a number other than zero was press. So – for example, in typing 2005 – pressing zero the first time would result in just showing the 2, but pressing zero a second time both zeroes would appear. It was similar for the decimal point – for some reason it did not appear until pressing a number afterwards. So the behavior was not what I wanted it to be.

A second challenge was dealing with floating point math. Those pesky results when you start dealing with decimals in particular and suddenly an answer of 7 is displayed as 7.00000000000001 or some other crazy value. More on this when we cover the equals button.

Below, I present my solution which only performs a single calculation at a time. I was satisfied with that for the time being and will try to figure out how to make it so that you can do multiple sequential calculations somewhere in the future.

There are actually three displays which are represented by three different variables.
The variables are

  • d1 – for the first number in the calculation
  • d2 – for the second number in the calculation
  • ans – for the result after the equals key is pressed

These variables are keyed into the smartshapes used for the displays as $$d1$$, $$d2$$, and $$ans$$. This way, the displays will update dynamically as the buttons are pressed.

Numbers 1 through 9
Each of these numbers has a similar code with a difference simply being the number being added to the variable. In this code you will find two more variables at work.

  • btnCount – This tracks how many times a number button or decimal has been pressed
  • screen – this flag is to help with differentiating between the first or second number in the calculation. We are simply on screen 1 or screen 2.

The btnCount variable was added to help limit the number of digits to that which would fit on the display. I thought it would give it a cleaner look.

The code for each number button 1 through 9 has essentially four parts – two for screen 1 and two for screen 2. Let’s examine the code for our number 1 button. Below are the first two parts that correspond to screen 1.

if ((window.screen==1) && (window.btnCount==0)) {

else if (window.screen==1) {

In the first part above we are checking for two conditions.

  1. If we are on screen 1
  2. If no buttons have been pressed yet (by default the screen reads 0)

If these are both true – we clear the display (d1=””;) This gets rid of the initial zero on the display. Otherwise pressing the number 1 would show on the display as  01 instead of just  1.
Next, we add the number 1 to the d1 display (d1=d1+=”1″;) Notice that I put the 1 in quotes. This ended up being an important part of my solution. I needed to make sure that everything added to the displays was a string rather than a number. That does seem counter-intuitive but it was the key to making the zero and decimal work the way I wanted. Using the += we take the current value of d1 and append the number onto the end of it.
Finally, we increment the btnCount variable

The second part is an else if statement for when the first statement returns false. Here we are simply looking to see that we are on screen 1. You’ll notice that we are not clearing the display in this part. If btnCount does not equal zero – it means there are other numbers on the display and we don’t want to clear them. So we add the 1 to the end and increment our btnCount variable.

Next we can look at the two parts for screen two.

if ((window.screen==2) && (window.btnCount==0)) {

else if (window.screen==2) {

You will notice they are exactly the same as the first two parts with the exception that we are now updating screen number two. So these would be in effect when it is time to update the second display. When a function button is pressed, we leave the first display value in place and then update the second using the same logic.

The Number Zero
The number zero had to be treated a little bit differently but ultimately it was simpler – only two parts needed – one for each of our two screens.

if ((window.screen==1) && (window.btnCount>=1)) {

if ((window.screen==2) && (window.btnCount>=1)) {

In both cases, we are checking which screen we are on and whether or not a button has been pressed. Remember, the default screen displays a zero so we only need to update the display if another button has already been pressed.

The Decimal
I struggled with the decimal for a while because it never wanted to show up until after a number was pressed and I wanted it to appear right away. So 5.7 would remain as 5 on the display until I pressed the 7. The same strategy as the numbers is used with the decimal and the issue goes away.

if (window.screen==1) {

if (window.screen==2) {

With the decimal, we don’t need to check for any other buttons being pressed because if the decimal is the first button that is pressed, we want the leading zero to remain so there is no need to clear it. If the decimal is not the first button pressed we just add it anyway. What is different is that you see we are disabling the decimal button after it is pressed so that someone does not enter multiple decimals for a given number – that would not make any sense.

Stay tuned for Part 4! We will take a look at some more code for other buttons.

The post Building A Calculator – Part 3 – Numbers on the Display appeared first on eLearning.

Stunning Free Update to Adobe Captivate 2019 Raises the Bar with Quick Start Projects & Productivity Enhancements

This summer just got a lot hotter! The latest update to Adobe Captivate is out now, it is free to Captivate users who either own Adobe Captivate 2019 or are on a subscription plan, and it is chock full of fresh, sensational new features and resources. The clear headliner is the new built in Assets and the associated search tool. Adobe has found a delightful way to accommodate the needs of developers who are new to eLearning while simultaneously including a serious speed and performance upgrade for more experienced users. 

The Adobe Captivate 2019 Free Update Announcement Video – includes a short overview.

Quick Start Projects

At the heart of the improvements are a set of beautiful, professionally designed Quick Start Projects. These ready to go slide collections remove the traditional barriers to entry for eLearning developers by providing easy to modify, simple to edit slides that align to virtually every form of online instruction, interaction, quiz, scenario & more. The new search tools in the asset panel make it easy to go shopping for sample slides of virtually every time. But the jaw dropper here is the way Adobe has improved the simplest aspects of working with slides in Captivate 2019.

You just drag and drop – and image replacement is a reality. You can grab those images from your system folders, or from the Captivate library. All of the text elements and shapes are instantly editable, and new copy/paste appearance tools make it a breeze to clone new formatting. The new system is smart enough to allow multiple themes – so you can mix and match themes within a single course / project. And it even anticipates your most likely preference with shortcut menus to let you quickly specify whether to adopt a new theme for a pasted / inserted slide or to stick with the original.

Check out the getting started video for a more visual introduction to the enhancements and new features.

Getting Started with Adobe Captivate 2019: The incredible Free Update

Hot Swap Images

I’m completely obsessed with the new image swap feature and I’m guessing that you will be too. It’s cool to be able to quickly swap an image for something else, but the bit that blew my mind was that Captivate 2019 Update 2 let’s me do this virtually anywhere there is an image. I’ll explain… I use images as backgrounds all of the time. I honestly didn’t think image swap would work for things like that. Imagine my delight the first time I dragged to replace the background of a fluid box and ‘BOOM’ instant background swap. It works with shapes too! You just drag and hover, when you see the powder blue glow, let go – Captivate will do the rest.

Here’s my video overview of the image swap feature for those who prefer it in images rather than words.

Image Swap Feature Explained

Theme Enhancements Galore

Themes have had some major overhauls in this update. Now you can mix and match slides with different themes – using multiple themes within the same course. As you add each new slide you can easily decide whether to retain its source theme or to adopt one of the themes of the new project. This really expands what you can do with themes, and it doesn’t stop there. The Captivate engineers have also added fantastic new tools to make the day-to-day work of an eLearning developer – a lot easier. Now themes include shortcuts to the fonts that you used. So it is easier than ever to identify the themes used in a course, and to replace them all at once if you like.

There is even a new tool to identify when a font used in a project is missing on your computer. This can help you sort out font problems with legacy content, and even makes suggestions about fonts that you can use to replace the missing ones, with a simple click.

Theme fonts help you speed your course creation process

Yeah, sure, that’s a button

We’ve all heard it – the boss comes around the corner, glances at a layout for 2 seconds and solves all of the worlds problems by saying – well can’t you just make that thing a button? Not everything is a button, we would typically reply. Well – now it’s really just as simple as checking a box. Shapes have been enormously popular thanks to their ability to be converted to buttons with the tick of a checkbox in Adobe Captivate.  Now the same multi-state, rollover aware smart button solution can be applied to any image in Adobe Captivate 2019. Just select your image, and check the ‘Use As Button’ option in the properties inspector. It even works with SVG images!

This great video summary demonstrates how simple it is to make a button from an image.


Yes, Icons! Yes, right there in the Assets Panel. Why yes they can be recolored right on the stage. I’m probably a little to excited about this, but Icons are an incredible time saver for me. A nice big library of icons has been included in this update, and Adobe provides the bonus tools that we’ve all come to expect. Just drop your icon in, double click and voila’ the icon is now ready for color swapping. You don’t even need Adobe Illustrator, just select the shape are that you want to recolor, and use the color picker from the property inspector to swap those colors in an instant. (And if you really wanted to do something more, round trip editing with Adobe Illustrator is just a checkbox away too.

Adding icons to your course is easy with Adobe Captivate 2019: The incredible Free Update

Copy – Paste Appearance

Think format painter, but more powerful. This nifty little productivity enhancement allows you to copy/paste the visual formatting of text and shape elements, INCLUDING all of the states of those objects. Just right click (control click) on the object with the right appearance and select copy appearance. Then select all of those pesky future twins and find ‘paste appearance’ in the context menu. That’s it – you get instant formatting across groups and sets. This one new tool saves me incredible time formatting buttons and text elements.

Copy / Paste appearance saves valuable time – giving you a powerful tool to quickly format your text and shapes

Virtual Reality VR Gets another boost

Creating 360 Virtual Reality courses keeps getting easier. In this update several enhancements have been added that make it even easier to create virtual reality courses. A new action trigger allows you to launch videos from a hotspot in a a VR / 360 project. In addition, the popups, including text areas, images and videos now all have close boxes – so your learners can control how long the popup item is visible in the project. There are hint and rollover enhancements for the hotspots, and you can now edit the hotspot SVG images by double clicking. It is also now possible to adjust the size of a hotspot – using control handles that appear upon selection.

VR text elements got a substantial makeover in this update as well. Now you can see the text elements on screen while editing, and you can alter the font, the formatting, color and even the opacity of the background. This let’s you really polish the look and feel of your VR courses. Perhaps my favorite VR enhancement is the option to include hotspot interactions as reported quiz interactions. You can now set the score, name the interaction ID, and chose whether to report the interaction as part of a quiz.

An overview of the VR/360 feature.

Branching without Advanced Actions or programming

Yes, you better believe it. Now the most common branching workflows, including forced navigation and in-course branching are easier than ever to accomplish. You can download examples from the Asset panel and simply swap the images and content to use your own, or by following a simple naming convention – Captivate 2019 will do the work for you. The most common course navigation pattern is to provide a menu page for your learners, where they can select from several available topics. Usually you want to give learners the freedom to decide the order of learning, but also want to verify that each section of content has been visited. This workflow can now be accomplished without programming. You just name the menu slide ‘branching’ and ensure that the buttons on the menu slide follow a simple naming convention, and Captivate will figure out the branching logic for you.

Overview of the automatic navigation and branching feature

Similarly, Captivate can now automate navigation of multi-state objects on a single slide – creating a forced navigation workflow that will hide the button to navigate to the next slide until all of the buttons on the slide have been explored. The method for both the course branching and the forced navigation of multi-state objects on a single slide handle all of the common interactions and can save you a lot of time while completely bypassing the need for advanced actions. (If you are a power user – don’t worry – you can still use advanced actions, and as a special bonus – you can even combine them.)

There are so many incredible enhancements and new features in this major free update you absolutely won’t want to miss it. If you are already a Captivate 2019 user, you can get the update right now, simply by following these steps:

In Adobe Captivate 2019,

  • Select Help Menu: Check for Updates.
  • The Adobe Captivate Updater dialog will appear and guide you through the remaining update process.

If you aren’t a Captivate customer yet, you can download the free trial here.

If you just want to learn more, check out these additional resources:



The post Stunning Free Update to Adobe Captivate 2019 Raises the Bar with Quick Start Projects & Productivity Enhancements appeared first on eLearning.

Why are Captivate 2019 quiz slides so slow when submitting the answer and also after clicking to continue?

I am using Captivate 2019 and exporting HTML5 into different formats. I notice that both on my web browser preview and on the LMS, whenever I click on Submit on a quiz slide, it takes more than 10 seconds for the result to appear. And again once I am told to click anywhere to continue, I need to wait more than 10 seconds to see the next slide or next question. Can this be somehow fixed? It does not seem to be a LMS issue, given that it also happens on my local preview.

I’m using the latest version of Chrome for both the preview and the LMS, and this I cannot change.

The post Why are Captivate 2019 quiz slides so slow when submitting the answer and also after clicking to continue? appeared first on eLearning.

Time in Captivate – The variables (Part 1)

Hello Captivaters !…

As I’m working on the Time, I try to compile all the solutions Captivate offers us to manipulate the resources, that is to say the “variables”…

In this project, I use Captivate and javascript :


It’s in french but I think everyone will understand all !…

I need you to complete/improve/translate this presentation !… Don’t hesitate to participate in the commentary area to share your lights !…

I will be happy to make another presentation with your comments, tips and tricks, javascript coding… about the time in Captivate !

Happy Captivating !…

The post Time in Captivate – The variables (Part 1) appeared first on eLearning.

Use A Smart Shape As A Text Entry Box

Not sure how much interest there would be in this but I have often desired a bit more flexibility over my text entry boxes.

In this project, I try to do just that by turning a basic smart shape into a text entry box.
The project has a label asking you to enter your name, a button to clear the smart shape if you make a mistake, a submit button to take you to the next slide, and a smart shape in which to type your name.
Now I can have it be a bit bigger with rounded corners, change colors and size, change the shape, and still incorporate the input with variables.

When you enter the slide you should simply be able to type your name and it will appear in the smart shape.
One drawback of this specific project is that the backspace key doesn’t function.
There may be a way to make that happen – I don’t know – I have not looked into it.

Another drawback is that the participant does not get to see a cursor.

Depending on your needs – this may or may not be a problem.

I limited the characters to 15 but you could still “overfill” the box. I was not going to be that fussy since you can see how this works.

Take a look and ask any questions you have. I will explain how I did this in another post.
Sorry – I didn’t spend a great deal of time polishing this one.


The post Use A Smart Shape As A Text Entry Box appeared first on eLearning.

Building A Calculator – Part 2 – The Framework

In the first post, I presented a basic functioning calculator. If you missed it, you can check here (Building A Calculator – Part 1).

In this post we will begin going through the steps to create the framework for the calculator.
Essentially, this is the body, buttons, and display of the calculator.

As with all things like this, I am sure there are lots of ways to approach the task. Feel free to layout your buttons differently, change the colors, etc as you desire.


This calculator uses a total of 19 buttons
– Eleven number buttons (0-9 plus the decimal button)
– Four operation buttons (plus, minus, times, divide)
– Two function buttons (Percent and polarity)
– A clear button
– An equals button


This calculator uses four rectangles as different displays
– A display to store the first numeric entry
– A display to store the second numeric entry
– A display to store the calculated answer
– a small box to display the symbol current operation being performed (**optional – not shown in video**)


This calculator has eight elements that make up the body
– A large rounded rectangle for the main body of the calculator
– A rectangle for the model number (Stagcalc 3000) (**optional not shown in video**)
– Six small rectangles to make the “solar panel” (**optional not shown in video**)

Creation Tips for Buttons

Here is my recommendation for creating the buttons. Do with it as you wish.
1. Draw out a rounded rectangle to a size of your liking.
2. Format the background color and border color to taste.
3. Format the button text to taste.
4. Check the “Use as button” box.
5. Duplicate the button as many times as needed.
6. Arrange, align, and modify the buttons as desired. (I chose to make the plus button a double size and the clear button a different color. I made those modifications after duplicating based on the majority.)

I prefer this general procedure so that when I duplicate, the copies will pick up as many attributes as possible to minimize doing the same setups on multiple objects – though you do have the ability to apply styles across multiple objects of the same type.

Here is a short video where I quickly try to show making the basic framework of this just to help visualize things.

Stay tuned for Part 3!

The post Building A Calculator – Part 2 – The Framework appeared first on eLearning.