Lsquared Math | Sample SCOs | My SCORM Quest | SCORM Poster | Contact Me | Resume


Image of a power company and an electrical outlet with a toaster plugged into it. The power company is like the LMS, responsible for the outlet which is like the API.  The toaster is like the SCO with a plug that is like the javascript.SCORM which stands for Sharable Content Object Reference Model is simply a set of standards that Learning Management Systems (LMSs) and Content Developers can adhere to in order to make their stuff communicate with each other. It is analogous to a company that makes toasters making sure that their plugs fit into the electrical outlet. The toaster itself would be the learning object or more specifically the sharable content object (SCO), the plug would be like the JavaScript that communicates with the outlet or application program interface (API). The power company (LMS) is in charge of the outlets (APIs) and the content developer is in charge of the JavaScript. As the owner of the toaster or the purchaser of a SCO, you expect that if you move or change LMSs, your toaster or SCO will still work in the new environment. In other words in the new town, you don't have to get all of your appliances fitted with a new plug to work with the outlets used in that town. This is the power of SCORM. Once you have a working SCO you can use it when your school changes LMSs and when your department changes textbooks.

As a teacher of online courses you may have found lots of interesting learning objects on the internet that could enhance your course, but without a way of tracking the results of those things, it is difficult to assign them to your students. You could recommend that your students play with a certain program that you think will enhance their understanding of the material, but if you assign it as part of their grade and even make sure that they do well with it before continuing on to other material, your students will work at the learning object more seriously. When you make a learning object SCORM compliant it is called a SCO and it can track the desired results and place those results directly in the LMS. For example, you might decide to teach your students how to add fractions in a SCO and have a quiz at the end of the SCO where they add random fractions. You could have the results of that quiz placed directly in the LMS's grade book.


Here are some links for things that you will want to download to your computer. SCORM 2004, 3rd edition is the current edition of SCORM. However most LMSs are still using SCORM 1.2 which has different commands, so you will probably want to stick with that for now, but be prepared to upgrade later. One easy way to prepare for an upgrade may be to make up your own functions in a separate file that has all of the commands in it. Then your Flash program can call those functions when needed. If later, you find that LMSs are finally adopting the latest standards, all you need to update is the separate file where you placed all of your functions. I haven't done this yet, with my programs because I was too busy just trying to make things work, but now that I have thought of it, I think I will take this approach in the near future.

  1. Sample SCO This sample includes the sampleSCO12.fla and the files so you can see the commands made to make things work. Also there is a packaged SCO that you may want to test in your own LMS and these instructions. Eventually I may add a learning object that has not yet been turned into a SCO so you can practice on it.
  2. Adobe Flash
  3. Java SE Development Kit (JDK) v5.0 or newer. Make sure you install this before installing the SCORM stuff (links 3, 4, and 5).
  4. SCORM version 1.2 Test Suite and Sample RTE*
  5. SCORM 2004 3rd Edition Conformance Test Suite v1.0.1 (Self Test)*
  6. SCORM 2004 3rd Edition Sample Run-Time Environment v1.0.1*
  7. Reload Editor v2.5.4 The reload editor can help you package your SCO for delivery into an LMS. I will post directions for using it later.
  • I have been using the Test Suite only. That is all I need to test individual SCOs. The Sample RTE is a scaled down LMS designed to let you test more features such as navigation.
  • Also, when you set up the Test Suite version 1.2, you will get a lot of annoying xsd files on your desktop that must stay there for the Test Suite to work, but you will never need to open them directly. I made them disappear without getting rid of them by right clicking on them, clicking Properties, and then checking the hidden box in the General tab. Then I went into the folder properties of the desktop folder and under the View tab I selected 'Do not show hidden files and folders'.
  • Instructions for Turning your Flash Based LO into a SCO

    1. Set up a folder for all of your files that are needed for developing this SCO.
    2. Copy and paste '' into your folder or make your own file with SCORM calls.
        My scormCode includes functions to:
      • call a student by first name.
      • compare prior attempt scores with the current attempt.
      • turn values from the LMS into strings that Flash understands.
    3. Set up another folder (either within the above folder or separately) that will hold only your SCO files (the files that you will put in an LMS).
    4. Copy and paste the files from a sample SCO into the new SCO folder.
    5. Open the index file in a text editor.
      • Do a find and replace to replace the name of your sample swf file with your new swf file. Note: just find and replace the text before the swf extension. Do not include the '.swf'.
      • Replace the dimensions of your sample sco with the dimensions of your new sco in the index page. The dimensions are located near the bottom of the page in two locations.
      • Change the title in the index page.
      • Save and close your index.html page
    6. Open the imsmanifest.xml file in a text editor.
      • change the name of Organization to your Organization, (I think that is what that line is supposed to be used for.)
      • change the title of your sco
      • change the swf file name
      • add any additional resources if needed using the same format as your first resource
      • save and close the manifest
    7. Delete the sample swf file from your sco package.
    8. Open the flash fla file for the program that you are turning into a SCO.
      • Add two scenes (one is optional for a greeting and information) before your main scene or if you already have a preloader scene, you can just add some code to it for the initialization scene.
      • Copy and paste the initialization code to the first scene (which I always like to rename: lms_initialize) or write your own initialization code.
      • Rename the next scene 'greeting' or adjust the code in the initialization scene button that calls the next scene. Note this scene is optional, but I like to use it in any SCO where my students are allowed multiple attempts.
      • Copy and paste the code for the greeting scene into your new sco either into the new greeting scene or into an already estabilished preloader scene.
      • Make sure you have a 'stop();' command in your main scene so the program doesn't loop around back to the first scene.
      • You need to include: 'import flash.external.*;' without the quotes at the top of any scene that is going to be making calls to the JavaScript in the html page. This only works in Flash 8 and above. If you are using an older version of Flash, you will need to make fscommand calls that won't work on MACs. I recommend that you upgrade your Flash.
      • Find the place in your program where a final score is calculated.
        1. If that score is not between 0 and 100, add some code to adjust the score to be between 0 and 100 and give it a variable name such as 'ave'.
        2. If you use my scormCode then insert the following command (using the variable name that you selected above: 'reportResultsToLMS(ave);'
        3. You might want to include some code that lets your students know that their score has now been recorded in the LMS
      • Save and publish your new SCO in Flash as a version 8 or later flash file. Note that you should turn off the html file in the publish settings since we already have created our html file. Also note that if you are updating a program that you created with an earlier version of flash the default setting will not be to publish as a Flash Player 8 file. You will need to go into Publish Settings, click on the Flash tab click on the Version drop down arrow and change to Flash Player 8 or later.
    9. Test your new SCO with the test suite. See the test suite instructions below.
    10. Package your new SCO in a zip file.
    11. Put your new SCO into your LMS. Most LMSs will have a place to upload SCORM content and they will ask you if you want the results recorded in the gradebook. Simply uploading the way you upload regular zip files will not work. Your LMS needs to know that this is SCORM content so it can handle it accordingly.

    You can use the Reload Editor to make a package from scratch instead of using a sample SCO as in the instructions above. You may still want to use the sample's index.html page. The Reload Editor will package your SCO and prepare it for delivery if you have the SCO itself and the html page that contains the SCO and javascript commands ready. Then you can use the reload editor to create the imsmanifest file as well as several other files with unknown purpose. Eventually, I may update these instructions to include how to use the Reload Editor. You might find some instructions from the editor's site. If you go to SCORM school, you will learn how to use the Reload Editor there.

    Testing Your SCO:

    Setting up the Test Suite on Your Computer

    The main thing to remember is to set up the Java environment first. If you do that, things should work smoothly. Possibly I could lead a longer workshop sometime where we practice setting things up and converting your own LOs into SCOs. Also there are many files that will show up and annoy you on your desktop that you will never open but they must be there for the Test Suite. You can make them hidden and then set your desktop to not display hidden files.

    Making Flash Work in the Test Suite

    You will probably want to put all of your Flash SCOs in one folder (with subfolders for different SCOs) so you don't have to go online everytime you want to test a new Flash SCO. You can set that one folder's permissions so that Flash SCOs inside of it can communicate with their host web page. If you are online the first time that you try this, the Adobe (used to be Macromedia) page that you need to set those permissions will pop up automatically. Once you grant permission, you will not need to redo this and then you can work offline.

    Running the Test Suite

    Resources aka places where I learned my stuff

  • SCORM school (see below)
  • e-Learning Standards by Carol Fallon and Sharon Brown
  • Using Flash MX to Create e-Learning by Sharon Castillo, Steven Hancock, and Garin Hess.
  • Many web searches where I found things like the external calls command and the idea of adding empty quotes in the javascript to convert an object to a string.
  • I also learned from the page that Flash generates when you publish as a SCORM package. I had to do a lot of editing below the line that says, "Do not edit below this line unless you know exactly what you are doing." eventhough I didn't know exactly what I was doing.
  • I also did many experiments where I figured out things like when I removed an alert command things that were working quit working, so what was going on was the alert command slowed things down enough to give the LMS a chance to initialize. That's when I added the initialization scene. One day I got a 'Hello Joe' in my greeting scene and I knew that I had communication.

    You may want to attend SCORM school to get an overview of working with SCORM, but don't expect to be able to make sophisticated programs that do things like record scores as a result of the school. Also, I found that the staff had overburdened themselves and was often slow to respond to the discussion boards. Here is a link to their site if you are interested: The class focuses on SCORM 2004, 3rd edition, but I don't know of any LMSs using it yet, so I have been developing using SCORM 1.2. For the most part the same principles apply, but the commands are a little different.


    The Close Program button in the sample SCO is not really needed since the html page also contains code to properly close the communication with the LMS.

    I have found that some kind of initialization scene is necessary to slow the Flash program down. If the program starts running before communication with the LMS is established there will be errors when the program tries to make calls to the LMS. More sophisticated code could be written that checks the status of the communication and then proceeds as soon as that communication is established. The solution I have in the sample was a quick and easy solution that I have found has worked in all of my programs so far.

    If you would like to communicate with me further on any of this, feel free to e-mail either through or through Lansing Community College. Both of these pages have contact information on them. When school is in session, I check my LCC e-mail more often than my Lsquared Math e-mail.

    I have spent over a year of my life and one intensive summer dedicated to figuring out how to make my software SCORM compliant in a useful way. It was very frustrating that nobody seemed to know how to make Flash programs work with SCORM unless you stuck to the built in templates which did not suit my style of programming. I gathered little bits of information from many sources named above which cost a lot of money. I was orginally planning on making a booklet to sell with this information in it, but I also had a desire to just have the information out there, easily accessible to other developers so they would not have to go through the same level of frustration that I did and instead could concentrate on making graeat Learning Objects. If after you go through these instructions, you find this is what you needed to get started making SCOs and you wish to make a donation for that information, a donation would gladly be accepted by clicking on the Pay Pal button. Good luck with your endeavors and happy programming.

    Last Update: August 16, 2011

    Sample SCOs | Lsquared Math Home | My SCORM Quest | Contact Me | Programs | Resume