How Impact4 Works (i.e. Impact4 in a Nutshell)

Impact4 is a modular architecture, with every part of a configuration being a loadable flash file that conforms to the I4 Module Specification.

The runtime begins in the following fashion:

  1. Impact4 starts, and opens and executes runtime
  2. Runtime sets up the internal database
  3. It then loads the XML file, and breaks it into two parts, the configuration and navigation
  4. It then processes the configuration, parsing the XML and putting it into the database
  5. It then names all the anonymous parts of the navigation and the condition tags
  6. Once the naming is done, it validates the configuration to point out any XML errors
  7. Then it applies the configuration data to the interface
  8. Sets runtime.initFinished

Once the runtime is finished initializing, it then:

  1. Runtime then loads navigation, and passes control to it
  2. The navigation then loads the first module in the navigation, but putting it into the itemsToLoad stack
  3. The navigation checks the itemsToLoad stack about every 5/17 times and loads whatever is in that array
  4. If the next button or back button were clicked, or the first module in the currently loaded set is autoAdvance and the modules are compositeFinalizable
  5. Load the next set of modules into itemsToLoad and unload the currently loaded modules
  6. Go Back to step 3

Definitions

     Module -a Flash SWF that conforms to the I4 Module Specification

     Special Module -a part of the runtime, includes runtime, i4preloader, navigation, and interface.

      Module Definition -a XML file that gives a definition of the module (its inputs and outputs)

      Configuration -the user definable file that defines the way that I4 runs