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:
- Impact4 starts, and opens and executes runtime
- Runtime sets up the internal database
- It then loads the XML file, and breaks it into two parts, the configuration and navigation
- It then processes the configuration, parsing the XML and putting it into the database
- It then names all the anonymous parts of the navigation and the condition tags
- Once the naming is done, it validates the configuration to point out any XML errors
- Then it applies the configuration data to the interface
- Sets runtime.initFinished
Once the runtime is finished initializing, it then:
- Runtime then loads navigation, and passes control to it
- The navigation then loads the first module in the navigation, but putting it into the itemsToLoad stack
- The navigation checks the itemsToLoad stack about every 5/17 times and loads whatever is in that array
- 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
- Load the next set of modules into itemsToLoad and unload the currently loaded modules
- 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