Creating a Flash WBT Framework, part 1

I put together part 1 of what I plan on being a multi-part series documeting the creation of a Flash WBT framework for creating SCORM compliant courses. This first once starts with an interface created in Flash CS3 and goes though the steps of adding the code to make it all work – and track on a SCORM 1.2 LMS. I’m using a custom wrapper class that I made for Pipwerks’ SCORM class. You need to know a bit about programming in Actionscript 3 – nothing advanced, but this isn’t in a tutoral format.

I’m hoping to fill a void with this – I know that there are a lot of people trying to develop WBTs in Flash and they have no idea where to start. I’ve been doing this for 4 years, and I know that I would have loved something like this when I started.

Example Documentation

Example Source Files

Please let me know if you find a bug, have a question, or have a comment or suggestion on what to cover next or how to make this better.

19 Comments

  1. Matt –

    Great idea. It took me 4-6 months of work (reading through some advanced books on AS OOP) to figure out a CBT/WBT framework in Flash. I’ve just now started on AS 3.0 and AIR. This should be a great resource.

    Incidentally I have just written a white paper on AIR versus Zinc which I can send to anyone (it may take a day or so to get it out since I’ve given it to a reviewer).

    Best,

    Marc Lee

    Reply

  2. When I did my first framework, I had a similar situation. I couldn’t find any best practices on it, so I just arrived at this method with trial and error. I had a decent programming background at the time so that helped also. I’ve thought about posting the code to it, but it’s so convoluted that I didn’t think anyone would be able to make sense out of it.

    If you post that file on your site, I’ll link to it. Don’t know how far that would go to enhancing your distribution, however :) But Air vs Zinc is a topic that I’m going to be interested in – I have a personal project that I’m going to be working on soon that will use one of them.

    Reply

  3. I’m going to bookmark you Matt! And Matt, I’ll be interested in your white paper too.

    I see a lot of good names in “links” so I’ll be busy checking it all out.

    Reply

  4. Thanks for this posting. I just learned about your site from Jason Merrill on the Flash Tiger yahoo group. I took a quick look at your demo and it looks like you have mainly focused on page navigation (and I guess tracking) at this point.

    I am interested in knowing if you or anyone is working on updating the learning interactions that are available from Adobe, and also if these can be readily integrated with what you are developing. I wanted to modify the learning interactions to include additional methods of scoring questions, but haven’t taken the time yet to figure out code from Adobe.

    Thanks for your blog.

    Reply

  5. This demo is mainly focused on page navigation. To add meaningful page tracking and complex completion tracking will take a few more demos.

    You’re asking about the quiz templates in Flash? Those were programed in AS1 and it doesn’t look like Adobe’s updated them in years. Since my framework in AS3, these won’t work with it.

    Honestly, I think that it’s better to create your own interactions from scratch and not to use Adobe’s. They’re pretty limited and you can get exactly what you want if you do you own. Would an similar example showing how to create an interaction be helpful? Say a multiple choice question?

    Reply

  6. Thanks for your reply. I would love to have an example of a multiple choice question, and in particular, how it might integrate with the framework you are creating.

    There are a few commercial tools that facilitate SCORM compliant quiz creation, but they are limited to a few canned types. It would be useful to be able to readily create customized, graded interactions.

    Reply

  7. Matt,

    This is a shot in the dark but…do you happen to have any experience with tracking to with AICC/HACP with the Adobe Connect Server? It is allegedly AICC HACP compliant but I have tried everything and can’t get anything other than Adobe Presenter and Captivate content to work in it and get any tracking.

    Reply

  8. Well… My LMSData class is strictly 1.2 – so all of the variable names would have to change in there. Also you’d have to edit the HTML file to switch the Pipwerks API to 2004 mode. And the manifest would be completely different.

    Reply

  9. Hi Matt
    Im using your AS3 wrapper and works brilliantly. One thing is the LMS is returning some uncessary calls which I want to get rid of from the wrapper

    This is the code from the LMS console
    readData(‘cmi.core.lesson_location’, ‘CORE’, ‘LESSON_LOCATION’)
    returning ”
    readData(‘cmi.core.credit’, ‘CORE’, ‘CREDIT’)
    returning ‘C’
    readData(‘cmi.core.lesson_status’, ‘CORE’, ‘LESSON_STATUS’)
    returning ‘N,A’
    readData(‘cmi.core.entry’, ‘CORE’, ‘LESSON_STATUS’)
    returning ‘N,A’
    readData(‘cmi.core.total_time’, ‘CORE’, ‘TIME’)
    returning ’00:00:00′
    readData(‘cmi.core.lesson_mode’, ‘CORE’, ‘LESSON_MODE’)
    returning ‘null’
    readData(‘cmi.core.score’, ‘null’, ‘null’)
    returning ‘null’
    readData(‘cmi.core.score.raw’, ‘CORE’, ‘SCORE’)
    returning ”
    readData(‘cmi.core.score.min’, ‘CORE’, ‘SCORE’)
    returning ”
    readData(‘cmi.core.score.max’, ‘CORE’, ‘SCORE’)
    returning ”
    readData(‘cmi.suspend_data’, ‘CORE_LESSON’, ”)
    returning ‘null’
    readData(‘cmi.launch_data’, ‘CORE_VENDOR’, ”)
    returning ‘null’
    returning ‘null’
    returning ‘null’
    returning ‘null’
    returning ‘null’
    returning ‘null’
    returning ‘true’

    Any ideas on how to turn this off

    Reply

  10. did you ever release a part 2? I LOVE your work. There aren’t enough flash resources for those developing eLearning. I’m trying to connect to a LMS using the HACP method. I haven’t started coding the LMS connection part at all. Can you please point me in the right direction? Any examples using AICC with HACP? I have to also make the 4 files with the final .swf. The .AU, .CRS, .DES, .CST. I’ve never connected to a “formal LMS” before. I’ve only connected to random half structured databases in AS2 using the get and post methods. Any links or resources or advice would be greatly appreciated. Thanks.

    Reply

Leave a Reply to Troy Cancel reply