Well it seems that there might be some hope after all! I just noticed tonight that if you compile a new version of the widget under the same name, all the previously inserted widgets will use the new version. So, let say that I have one presentation with 4 widgets (version 1.0). I then insert a new widget (version 1.1). When I preview the presentation, all the widgets will display the behavior of widget version 1.1. However, this only seems to work when the presentation is previewed or published. When editing the widget inside Captivate, its interface will reflect the version in which it was instantiated. So, the update will actually work only if there are no changes in the widget UI or the data used to exchange information.
Archive for April, 2010
As a widget developer, I want to be able to offer updates for my widgets. I also want these updates to be painless for my users. Unfortunately, it seems that the Captivate team never took that into account when designing the widget framework.
The premiss is simple: I’m a content developer who’s using a widget in my project and I use it in many slides. One day, I realize that there is a bug with the widget. I look up the developer’s web site and realize that there is an update that fixes this bug. Great! I download the new widget and then I’m stuck. There is no way to simply update the widget like you can update a media asset in the library. When you insert a widget, either through the insert menu or the widget panel, the widget is never added/shown in the library. It then makes it impossible to update.
I noticed that some people don’t know how to access internal variables in Actionscript code. So, I tried to take some time to write a small tutorial about this. First, what I’m about to show you is applicable to both AS2 and AS3 but I’ll use AS3 to demonstrate it.
When you compile your movie using AS3, Captivate compiles a file called “CaptivateMaintimeline.as”. You can find this file on your hard drive in the Captivate installation folder under the “ActionScript 3.0″ sub-folder. If you open up that file, you will see declarations such as this:
I’m now in the final miles and working out the packaging of the widget. This is a sneak peek at what the Interactive Label widget looks like. As you can see, its main usage is to highlight areas of an image and provide more information if necessary. It is built as a full blown Captivate Interactive Widget so you’ll be able to configure it and have it interact with your Captivate content. I’m building up a more complete demo of its functionality so stay tune to see more.
I’ve been involved with Flash/Flex and e-Learning for quite some time now. It’s something I realy enjoy but unfortunately my career has taken some turns that moved me a little bit away from the e-Learning field. I’m still involved but to a lesser extend. So, I decided to pursue my e-Learning “passion” outside of my company’s walls.
About two months ago, I decided to take a look at Captivate. It’s based on Flash so I should love it, right? Indeed, I find it very interesting and I decided to give a kick at the can. So, I browsed the forums, looked at blogs and decided to create my first Captivate Widget. By the way, the Captivate community is really cool and helpful. I have exchanged with a lot of great people such as Captiv8r, Lylibiri, Jim and Michael.
I’m almost done with my widget and so far the ride has been fun. It’s a lot of work but it’s fun. So keep up with me a little bit longer and I will soon show you what I’ve been working on.