2/10/2009 4:44 PM

Notes on eFFx from Richard's last day


eFFx is a content player with a focus on a central events handler. All of the events produce by the system (from content, clicks, load and unloads) through one central event handling system.

At present this sytems handles:

  • foundations editor
  • foundations player
  • task editor
  • task player

does things like:

  • show / hide things
  • access content
  • turn on tracking


  • 1.0 - original far training
  • 1.1 - construction safty
  • 1.1.1 - COBC
  • 2.0 - introduced the editor / <header> tag in menu

Event Handler

The events are pulled from 2 areas:

  • Events specified by the project (in the content in an <events> tag)
  • Events common to all player Types [foundataions, editor, tasks and task editor] (events.xml in these folders)

control.js - main application

  • for each new application
    • pull in controls.js and xml.js - basis of effx
    • create a FoundationsPlayer.htm to define the layout



  • loading content


  • rendering content


  • edits xml content


  • track - current session info - history of this session
  • scorm - traing that links to a backend - permanent records.


  • specs.js
    • module path
    • styles
    • parameters
    • loadtype(1=cd,2=web,3=xmldb-preview,4=xmldb-loading)
    • hasLMS ( if true: prompts if lms is not found and sets this to false. if false: does not even check)
  • specifing player location ( makes possible multiple players in one project) (specified in index.htm)


  • ctrl - holds settings, parameters...
    • params must be "filename=<path to module xml from the effx core dir>" - this is set
    • holds info for all the parts - player info, effx info... info is just tagged onto this object
  • objXML - holds module xml
  • objEvents - holds events.xml file.

each part of the player / editor (each frame)

  • sets ev = to global event handler
  • sets up load and unload


  • mostly stand alone functions
  • debug function in render is useful!
  • <event id="foo"><action>doesSomething</action></event> -- called with ev('foo','<args>') - triggers javascript actions
    • eval("doesSomething(args)")

questions answer types

  • any - one try is considered completed
  • none - only one shot
  • wrong - only show wrong answers again
  • all - have to have all right to be completed)

Notes on Files


  • must be loaded last!


  • initFoundations - takes the module files... passes it through load.xsl (using transformToString) to produce the html source for the module
  • when the content of the _content_ div is changed, the onclick of the _content_ div is called ( calls flash_onload if <flash>, media_onload if <media>, else content_ontrack


  • to edit navigation bar edit Foundations/navibar.xsl


  • each frame can have its own css (css attribute of <frame>)
  • each page has 2 style sheets - one general and on on a per frame requirement
Home: WikiStart
What's new: Recently changed articles
You can subscribe to this wiki article using an RSS feed reader.