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.
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 …
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 ByteArray.org. 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.
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!
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.
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.
Have you ever tried to get a course completion status from inside Captivate because you wanted your widget to behave differently depending on if the course was completed or not? Some people are accessing the SCORM API from javascript to achieve that but there’s also a way to get it directly from within Captivate. It’s really simple. The Main Captivate movie (CaptivateMainTimeline) has a public variable called “quizPlaybackController“. This gives you in turn access to a property called “totalQuizCompleted“. This property will either be set to “completed” or “incomplete“. So, if you want to know the status of the course, just read this last property.
In CpGears, just type the following lines of code to get the course status:
import cpgears.helpers.DisplayObjectUtil;
var mainTimeline:MovieClip = DisplayObjectUtil.findParentByType(this,"CaptivateMainTimeline")as MovieClip; var playbackController:Object = mainTimeline.quizPlaybackController;
if(playbackController !=null&& playbackController.totalQuizCompleted =="completed"){
TYPE IN YOUR CODE HERE }
If you are not using CpGears, the CaptivateMainTimeline movieclip can usually be found by typing “this.root.parent.root”
If you want to see more tips and tricks, then just make sure you attend my session at the Adobe Learning Summit … I’ll be speaking there and presenting a lot of tips and tricks about widget!
I haven’t been very vocal about it but a few months ago I was invited to be a speaker at the Adobe Learning Summit 2011 that will take place in Orlando on march 21st. This is a great privilege for me and I’m extremely flattered that Adobe thought of me to give one of the advanced session. I’m sure by now you have figured out the subject of my presentation: Widgets. So, I’m currently working on it and I thought that it could be interesting to know who’s going to be there and if they plan to attend my session.
If you plan to attend the session, I would like to hear if you have specific expectations about the subject. The session, even if it’s in the advanced session, will not be a very hardcore code-centric presentation. I want to initiate people to the cool world of widgets. So I intend to show the different types of widgets, how they present themselves and some tricks and tips that I caught along … some that are on my blogs and some that aren’t. You can actually see the session details here.
So, leave me a comment telling me if you have some expectations. If there’s something that you really want to see then it’s not too late for me to see if I can squeeze it in. And if you’re not already registered … then what are you waiting for! It’s going to be great! A lot of amazing speakers are lining up. Just click on the banner below and it will take you to the event page where you can register online.
A while ago, I talked about injecting some life into Captivate quizzes. Well, after being side-tracked long enough, I finally put more time into it and I am almost done. I added most of the expected quiz behaviors and replaced the feedback mechanism with something that I think is nicer … but I want you to be the judge of this. So, complete the quiz and review your answers at the end.
With this widget, you’ll be able to customize the colors and transparency of the highlight and the font face/size/color. I will also add a few more options like shuffling before releasing it officially. So have a look and let me know what you think!
I finally removed the last known issues with the CpNotepad Widget (Cp5 only). It is now available for purchase at a price of $24.95 USD. I think that this is a fair price considering that the Widget can be used in almost every courses. Check out the updated demo and make sure you understand the limitations that comes with it. The major limitation is that the Export to HTML functionality can only work when the course is published with Flash Player version 10. If your customer is still stuck with version 9, don’t bother it will not work.
Now, since Christmas is knocking on our doors, I decided to make it a Christmas Launch Special. So instead of the usual price, you get a $10 off so the widget will cost you only $14.95 USD. However, there’s a catch! The rebate will only be applied to the first 5 customers. However, being generous in nature , if you buy the widget before the new year and don’t get the rebate, just e-mail me and we’ll fix that.
It seems that I have a hard time concentrating on finishing CpGears. I always get side tracked to something interesting. A few days ago, James at Mindful by Design was looking at a way to have his users take notes when going through a course. The notes needed to be persisted across sessions and eventually printed. That was enough to get me interested and I ended up being sponsored by James to create a widget that do just that.
The CpNotepad widget offers you a rudimentary text editor to take your notes. They are saved in a Flash Player shared object so that they can be recalled the next time you take the course. For printing, I hit a few brick walls. Printing in Flash is not that great, especially for text that is too big to fit on the screen. I ended up exploiting a Plash Player 10 feature that allows to save a file on the user’s disk. So, I used this approach to export the text and its formatting to an HTML file. The user can then open it up in his favorite browser and print it if he wishes!
I still have to put the final touch and make sure that it’s robust (a few bugs here and there) but you can take a look at it if you wish.