Using a SCORM Wrapper to Simplify the Workflow

This entry is part 9 of 9 in the series SCORM for Developers

A SCORM wrapper is JavaScript library that serves as an abstraction layer between the SCORM API and your course. Among other benefits, it simplifies your code and makes working with the SCORM API much easier.

Update to SCORM Wrapper

Made a minor update: scorm.quit() was setting a value (cmi.exit) but not invoking scorm.save() (aka Commit()) prior to termination.

View the latest update on GitHub

SCORM “Planets” Example Updated

My “Planets” example (How to Add Basic SCORM Code to a Flash Movie) has proven to be one of the most popular items on pipwerks.com. Unfortunately, it was designed as a quick example and had a bunch of flaws and shortcomings. It’s also about 3 years old and starting to show its age. Since people frequently contact me with questions — many of which were due to the flaws in the example — I decided to update the project.

SCORM Wrapper updated for improved Plateau support

The pipwerks SCORM Wrapper has been updated with a small patch for handling odd behavior in the Plateau LMS. Special thanks to Joe Venditti for the patch (and sorry for taking almost 2 years to add it to the codebase!). Get the latest version here. Comments Bobby wrote on August 10, 2011 at 7:31 am: Thanks for the update Philip! I test my content outside of a LMS environment. In that case, the code you've introduce causes a javascript error since win.top.opener is null. To combat this, I check for win.top.opener before checking for win.top.opener.document. I'm not sure this is worth adding, as I realize I'm in a unique situation. Just thought I would share my findings. Thanks again! philip wrote on August 10, 2011…

Abstracting Your Course’s Tracking Code

An abstraction layer is a way of hiding complexities and maintaining cleanliness in your application. When integrating tracking support (SCORM, AICC, etc,) into an an e-learning course, it’s a good idea to abstract as much of the tracking code as possible. Here are some examples.

SCORM Tip: Use an onunload handler

What happens if the browser window containing your course is closed by the learner before the course finishes sending data to the LMS? If you’re not careful about how you’ve coded your course, you can lose some of the data.

SCORM resources

I recently emailed a shortlist of good SCORM development resources to a colleague, and figured I should probably post a list here, too. This is a quickie list, and I’m sure I’m leaving someone out. If you know of any resources I’ve missed, please add a link in the comments. This list is presented in no particular order.