Monday, 09 May 2011Posted by Whyves

While reading the eLearning Today, I  stumbled on an article that was mentioning sites that teachers can use to build puzzles/games and interactions for their courses. Sure, these are great resources but you always have to go back to the tools/web sites to create your interaction with a different content and then insert it in your Captivate course. Everybody should know by now that Captivate Widgets are great for building interactivity directly in Captivate. Unfortunately, there are not a lot of great games that can be used and customized directly in Captivate. With that in mind, I just decided to let you in on a little secret … I’m currently building some small typical games as widgets.

My first attempt is a rewrite of the Jumbled Words widget. A while ago, I rewrote the old AS2 version in AS3 so it could be used in Cp5. It’s free and still here if you are interested. However, this game is very limited and doesn’t have nice graphics. So, I rewrote it from scratch and added a lot of new features. For example, You can now use many words, you can give away some letters and you can reject the letter if it is not dropped in the proper location. On top of that, almost everything is customizable: the padding between the letters, words and lines, the size of the game and every graphic in it plus much more. My next game will be a hangman type of game.

This is a sneak peek of my engine so try to discover this catch phrase :-) If you have ideas of features for the Jumbled Words game or if you want to give me your impressions, just let me know through the comments.

Sunday, 08 May 2011Posted by Whyves

A little while ago, an eLearning developer contacted me about the Playbar Lock Widget. He had bought the widget and liked it but it was lacking a crucial functionality for him: the capability to lock the TOC. He was able to lock the TOC on the first slide and unlock it on the last slide by setting the cpLockTOC variable but once unlocked, the TOC would be locked again if the learner navigated back to the first page. So, instead of trying to figure out the required advanced actions that could solve the issue, he decided to sponsor the new feature. By sponsoring a feature, a customer takes upon himself to pay for the development of the feature but offers it as upgrade to the product. So, Richard Beale, an indepedent E-Learning developer, offers to the current and future customers of the Playbar Lock Widget, the added capability to lock the TOC. All the current customers should receive an e-mail with the reactivated download link shortly but if you are a customer and didn’t get any e-mail, you can always contact me directly.

For those of you that are in need of an E-Learning developer, here are Richard’s coordinates:

Richard Beale, Independent E-Learning Developer
richard.beale “at”

Thanks Richard for your contribution!

Friday, 01 April 2011Posted by Whyves

I have a widget that I worked on while developing CpGears. It laid dormant for a while and lately I finished working on it. The widget is called the Playbar Lock Widget and as its name indicates, it locks the playbar from going forward. So, a learner will not be able to use the next page button or the progress bar to advance in the lesson. However, the entire functionality will return once the presentation reaches the last page.

The widget also tracks the last page visited by the user and if the user goes backward, the next page button will reappear until the user goes back to the last visited page. The nice part is that the widget functionality works also with a LMS. The widget will use the status of the lesson stored in the LMS to enable or disable the next page button and the progress bar.

You can find more information here or experiment with the demo.

Tuesday, 29 March 2011Posted by Whyves

It seems that CpGears users have the wrong impression that CpGears doesn’t handle native Captivate events such as CPSlideEnterEvent and CPMovieStartEvent. Actually, CpGears offers a way for monitoring all native Captivate events and I decided to create a small article on the CpGears site to demonstrate how. I have also included a sample project that monitors the changing of slides as well as when the presentation is playing or paused.

Since all widgets containing code that monitors such events need to be compiled, I took the liberty of compiling all native Captivate events in a single captivate.swc file. This way, you can add it to your FlashDevelop project and not worry about where the event classes are located on you PC. You can find the SWC file in the downloads section of the CpGears site or just by clicking here.

By the way, I would like to hear from those that tried CpGears and have them give me their impressions …

Sunday, 27 March 2011Posted by Whyves

At the last Adobe Learning Summit, I attended Josh Cavalier’s presentation on Captivate for mobile. It was a very good and entertaining presentation. Josh presented examples of Captivate courses built for his mobile. It was clear that the standard playbar and controls were not meant for the mobile world and Josh said quite a few times that you would need to build a widget for doing this or that. At some point, the subject of gesture recognition was brought forth and many wished that Captivate would include this in a future release. Well, that was enough to trigger my interest and I looked around to find a free/open source gesture API. Of course the Flash Player 10.1 has some but I wanted to find something quick and easy. I found such an API from It’s a very easy and nice API, just enough for experimenting.

So, I used this API to create a widget that would recognize the standard gestures to switch page. It’s not bullet proof but here’s my first draft at it. You can change the page by dragging your mouse/finger to the left or to the right.

If you want the widget, you can get it HERE.

Monday, 21 March 2011Posted by Whyves

I just finished giving my widget presentation at the Adobe Learning Summit 2011. I said that I would make my presentation available on my site so here it is: Adobe Captivate Widget 101.

Wednesday, 16 March 2011Posted by Whyves

No one can be indifferent to what’s currently happening in Japan. In those hard times, a small gesture can make a difference. So, I decided to give some money to the Canadian Red Cross relieve fund for Japan. On top of my personal contribution, I decided to give this week’s proceeds from my widget sales to the fund as well. Widget sales are not something that is constant. Some weeks you get some sales and some weeks you don’t get any. However, this week has started really well in term of sales and it will be a pleasure to give it all to the fund. However, why stop there? Let’s do it for next week as well!

Therefore, if you had any intention to buy a widget from Flash-Factor, please do it this week or next week so that the money can go to a very good cause. I’ll go even a step further, if you want to give some money to any Japan Relief fund in the next two weeks, just send me a proof of your contribution and I will give you the widgets that you want up to the level of your contribution. If you give $50 or more, I will give you all three widgets (Interactive Label, Image Zoom and CpNotepad).

So, please be generous between March 13th and March 26th!


Monday, 07 March 2011Posted by Whyves

As I’m sitting down at the airport waiting to board my flight for my vacation (in the middle of a snow storm), I’m looking at the tweets and blogs about Captivate. Lieve (aka Lilybiri) just wrote a post about her frustration with the lack of control over scoring slides. Lieve is definitely one of the most active contributor in the Captivate community and she’s an expert at Advanced Actions. You would think that where Advanced Actions are not enough, a widget will do the trick. Well, it’s not always the case.

So, I will add my voice to Lieve’s and share my little frustration as well. I really like Captivate and I think it’s a great tool. However, there are times where I have to resort to weird hacks to get things working, just like Lieve has to. I’m sure that, like any tool, the Captivate widget API will evolve and get much better over the next few years but it sure would be nice to have Captivate offer more control over the runtime presentation sooner than later. And also more control over the Quiz API. Right now, you have to resort to using the external Javascript API to communicate with the LMS. Wouldn’t it be nice if we could do that directly from our Widget API? What about being able to offer partial scoring for our Widgets?

I’m sure that the Captivate gods will hear our prayers and bring us some surprises for the upcoming Cp6 :-)

In the mean time, if you are interested to learn some tips and trick about widgets, just make you way to the Adobe Learning Summit 2011. I will be presenting what I know about widgets.

Thursday, 03 March 2011Posted by Whyves

Just wrote a new article on another very powerful feature of CpGears: the eventing mechanism. In CpGears, you can know when a widget has changed its visibility. Even more powerful is to know when a Captivate Variable has changed its value. Check it out on google code!

And if you attend my presentation on widgets at the ALS 2011, just make sure to let me know if you like CpGears or not!

Sunday, 27 February 2011Posted by Whyves

Well, I guess it has been long enough since I last promised I would release CpGears. In fact, CpGears has always been available on Google Code but it never had any documentation showing how to use it. Today, I spent a big portion of my day writing articles on how to use  CpGears.

So, the Wiki section contains an Article showing you how to create a Static Widget in CpGears and another one on how to use its logging mechanism. In the Downloads section, you can find the CpGears SWC component as well as a demo project for a Static Widget.

Finally, for the brave ones, I also published the CpGears API.

CpGears is in essence functional but keep in mind that it’s still under development and that it may have a few bugs here and there. I have tried it on many widgets I built in the last few months and I think that the workflow is solid.

If you have questions or suggestions, please make sure to post them here or on the Google Site. That will be the only way the API will progress and be useful to more and more developers.

Looking forward to you comments!