YOUR FEEDBACK
SOA Feature Story: Real-Time SOA Starts with the Messaging Bus!
Gerardo Pardo-Castellote wrote: Regarding the previous comment about "TCP ...


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
MXDJ TOP LINKS YOU MUST CLICK ON !


Director and SCORM 1.3 SCORM
Sharable Content Object Reference Model

Digg This!

Page 2 of 2   « previous page

The CM is responsible for presenting the content to the learner and handling any intra-SCO navigation. Each screen the user sees is a new instance of the CM. The CM renders everything that the learner sees on the screen. The CM loads its layout and content information from an external, XML-based Content Presentation Model (CPM) file. The CPM file specifies content layout information for a single screen. The CPM contains information about text, graphics, video, positioning, fonts, and so forth (Table 1)

An entry in the CPM file might specify an image to load and the location on the screen to render the image. Or, for text, a CPM entry could specify the text string, its font, leading, color, and so forth. During playback, the CM is responsible for communicating with the LMS. If a designer had placed an image at a horizontal location of 300 pixels but later decides it should be at 290 pixels, there is no need to open Director. Just edit the appropriate XML source file and the change is automatic.

Sharing the playback engine across all SCOs ensures repeatability and control. Updates to the PE are universal and immediately reflected in all SCOs upon re-import into the LMS. The process removes typical SCORM authoring methods of unique code for every SCO and HTML page.

Playback Support
One goal of the S2PE is to leverage the content creator's vision. The support for a variety of media asset types includes graphics, 3D, text, video, audio, Flash and Shockwave. Their implementation by the author is not limited to merely placing elements on the screen. Support for event synchronization allows media elements to have their location, transparency, visibility, z-ordering, playback rates, video locations, and so forth set and tweened automatically at runtime. All necessary mathematical in-between calculations are performed by the PE. The author need only specify key event times.

For many designers, they're content appears on screen as delivered to the programmer. Yet, with the S2PE they are able to easily set many properties that they relied on the programmer for. For example, the "render" tag maps directly to Director's sprite "ink" property. "Blend", "background" color ,etc are all exposed to encourage creativity. For many designers this is something new to work with. In general, properties of sprites map to a specific tag within the CPM XML file.

Multi-state buttons, graphical and textual hotspots, pop-up images and pop-up text all offer additional capabilities in support of the author. All on screen items are referred to as media elements. Nearly all media elements share a set of common attributes (Table 2).

Specific media elements have their own applicable attributes.

Graphic
Supported Formats ( PNG, JPG, GIF, BMP, TIF, PSD) Note: PSD (Photoshop) files depend on the state of the PSD when it was last saved. Hidden layers are discarded and the visible layers are flattened to yield the final image.

Inherits from Media Element Properties
Any media element may have hotspots assigned to it. Hotspots are described as areas within a sprite area. This is similar to an HTML image map. For textual elements, it is done on a per word, or word range basis. Hotspots support unlimited pop-up graphics and text for each spot.

Though a basic overview, the previous information allows inspection of a simple CPM XML file (Listing 7).

<graphics>
     <graphic filename=":::ashleym.png" origin="320,200"/>
</graphics>

<text>
     <head render="bgtransparent"> Adobe > Thank You Director</head>
    <prompt color="255,255,255" align="center" render="bgtransparent"/>
</text>

All graphics are enclosed within the graphics tag. In this case there is only the single ashleym.png file. Also included with that graphic's information is its layout location.

This XML file does not indicate any text to be rendered on screen but does take advantage of the built-in support for header text and a user prompt. The next example includes audio, graphics, and a linked Director movie (LDM) containing an independent 3D world (Listing 8).

<audio>
     <synch filename=":::shelbym.mp4" start="-1" stop="-1"/>
</audio>

<graphics>
     <graphic filename=":::type4.jpg" origin="center,center" blend="60"/>
</graphics>

<ldm>
     <ldm filename=":::butzi.dcr" origin="center,center" visible="true"/>
</ldm>

<text>
     <head>Compound/Element > Compound</head>
     <prompt>Click Continue.</prompt>
</text>

Note that in the audio section there are start and stop times listed. The values of -1 indicate play from start to end. However, any value in 1/60 second increments may be used.

The graphic section places the location of the image at "center, center". The XML specification allows this value as shorthand. Besides specifying the term "center" or absolute pixel locations, you can also use fractions such as "1/4" to indicate one-fourth of the way in the specified direction.

Finally, Listing 9 is a more complex XML file. This is a partial list of a file used to run a 60-second sequence of animation, art, video, and music. The main feature to note is the synch attribute, which is used to interpolate media element states in reference to the movie time of the audio filename at the top of the file.

<audio>
   <synch filename=":::shortPhili.mp4" start="-1" stop="-1"/>
</audio>

<video>
   <video filename=":::drmiller.mp4" origin="center,center" width="640" height="420" visible="0">
    <synch>

    <playrate>
      <playrate event="start" playrate="1.0"/>
      <playrate event="100" playrate="6.0"/>
      <playrate event="2800" playrate="0"/>
    </playrate>

    <visible>
      <visible event="start" visible="1"/>
      <visible event="100" visible="0"/>
      <visible event="110" visible="1"/>
    </visible>

    <playtime>
      <playtime event="start" playtime="1100"/>
      <playtime event="1850" playtime="4600"/>
      <playtime event="2450" playtime="11000"/>
    </playtime>

    </synch>

   </video>

<graphics>
   <graphic filename=":::collage_01.jpg" origin="center,center" visible="0">
    <synch>

     <zoomstack timebase="audio">

     <zoomitem filename=":::collage_01.jpg" targetrect="85,110,90,115" method="rect" direction="in" prescale="true"
steps="30" blendinat="-1" blendoutat="925" startzoomat="900" stopzoomat="951"/>

     <zoomitem filename=":::common:images:collage_02.jpg"
targetrect="85,110,90,115" method="bestfit" direction="in" prescale="true"
steps="30" blendinat="951" blendoutat="1100" startzoomat="925"
stopzoomat="1150"/>

     <zoomitem filename=":::common:images:collage_03.jpg"
targetrect="85,110,90,115" method="bestfit" direction="out" prescale="true" steps="30" blendinat="1200"
blendoutat="1400" startzoomat="1150" stopzoomat="1500"/>

     </zoomstack>
    </synch>
   </graphic>

   <graphic filename=":::collage_10.jpg" origin="200,-100" width="100" height="75" blend="100">
    <synch>
     <zorder>
       <zorder event="3130" top="1"/>
     </zorder>

   </synch>
   <hotspots click="0">
     <hotspot item="left" rect="10,10,90,65" >
     <popimage filename=":::sm_collage_10.jpg" origin="350,130" />
     <popText origin="220,40" width="275" regH="left" regV="top" italic="true" pt="18" text="end"/>
     <popText align="center" origin="250,95" width="250" regH="left" regV="top" pt="26" bold="true" text="End"/>
    </hotspot>
   </hotspots>
  </graphic>
<graphics>

With regards to quizzes and interaction within the LMS, all scoring, determination of correctness, objective mapping, and LMS interaction is handled automatically. An initial library of approximately 150 JavaScript functions dedicated to LMS interaction supports all required messaging between the S2PE and the LMS. For clarity, the libraries are split into SCORM sections dealing with the API, Comments From Learner, Comments From LMS, Date and Time, Interactions, Objectives, SCO's, and Sequencing and Navigation. Whether you implement SCORM content with Director or some other method, JavaScript is a requirement for communication with the LMS.

Future Vision
The current working version supports limited messaging between media elements. Increasing that support will allow media elements to interact with greater detail and robustness.

The inclusion of support for speech and accessibility standards will round out the needs of most content. Director offers the most flexible 508 authoring solutions available. It is a little known fact that the Windows version of Director supports the Microsoft SAPI XML TTS. As such, Director is a natural for notably exceptional speech within SCORM content.

Throughout it all, the vision remains clear, bringing LMS and SCORM into the public arena by facilitating the creation of robust content that can present one's vision.

Additional Resources

  • Advanced Distributed Learning The official site for all things SCORM. www.adlnet.org/
  • Advanced Distributed Learning SCORM 2004 Plug-In Technologies Example. www.adlnet.org/downloads/204.cfm Includes both Director and Flash examples of LMS communication.
US Army Training Support Center SCORM v1.2 Business Rules and Best Practices www.atsc.army.mil/itsd/imi/bus_rules.asp Refers to SCORM 1.2 but relevant.


Page 2 of 2   « previous page

About Kraig Mentor
Kraig Mentor is a developer for Concurrent Technologies Corporation (CTC) of Johnstown, PA (www.ctc.com). CTC is an independent professional services organization that provides management and technology-based solutions to a wide variety of clients representing state and federal government as well as the private sector. Mr. Mentor recently presented the content of this article at the International Plugfest II in Taipei, Taiwan. He has spoken at other SCORM conferences on the topics of JavaScript LMS communication and has written articles for the Advanced Distributed Learning (ADL) Web site. His work on various projects has earned him eight Addy awards as well as an Excellence in Education Award from the National Hydropower Association. Prior to joining CTC, Mr. Mentor worked as a developer on the Director product line at Macromedia, San Francisco. Other past areas of work include automation, robotics and electronics. He may be contacted at kraig@ctc.com.

Sys-Con Brasil News Desk wrote: The Sharable Content Object Reference Model (SCORM ®) Shareable Content Object (SCO) Presentation Engine (S2PE) is a SCORM content presentation application prototype, which allows content to be abstracted from the playback mechanism. The engine removes the burden of programming Learning Management System (LMS) communication from the content author by automatically handling all communication for them. Rather th an programming content, the author describes content through Extensible Markup Language (XML) files, which the engine interprets to render the content. The engine is robust in its support for graphics, text, video, audio, 3D, Shockwave, and Flash content. The engine also supports quizzes, interactivity, and synchronization of events.
read & respond »
LATEST FLEX STORIES & POSTS
Keys to Success When Load Testing Today's Flex Applications
In today's complex web application world, developers need to test applications that go beyond simple HTTP-based pages. They need to test Rich Internet Applications that incorporate complex technologies like Adobe's Flex. Adobe Flex applications may be different from applications you wo
Adobe's Kevin Lynch and Microsoft's Scott Guthrie to Keynote AJAX World RIA Conference & Expo
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted to be
Flex 4 SDK News
Yesterday, a new component architecture and feature specifications were provided to the Flex SDK open source developer community. The Flex team targets three primary teams: design in mind, developer productivity, and framework evolution.
Adobe Gives Yahoo & Google Special Flash Treatment
Adobe says it's going to 'dramatically improve' the search results of dynamic web content and rich Internet applications (RIAs) for Google and Yahoo by giving them optimized Flash Player technology. This new widgetry, which will read and index SWF files, is supposed to uncover informat
Food Dial, a Facebook RIA Application Written in Flex
Food Dial is not just a book of recipes. Here's the big idea - you came back home, tired and hungry. Start the Food Dial application and open the fridge. Here's the red pepper. Turn the dial with food categories...
DreamFace Interactive Delivers Mashup Kit: DreamFace-Fx for Adobe Flex
Following the private Beta release last month, DreamFace Interactive announced the general availability of the DreamFace-Fx Mashup Kit for Adobe Flex. As promised, DreamFace-Fx is the first Mashup Kit to reach developers in a comprehensive roadmap which will extend the DreamFace Open S
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE