[[projects:projects]]:[[flash]]:[[conceptual design]] ====== External Data Sources ====== External data comes in from these sources: - onScriptLoaded(subject data) - from pages/*.js * flash.js switches the page and then passes data to Program object - onLoadData(data) - from an external windows such as Sanskrit Keyboard * postMessage: window.addEventListener("message", function(e) { * flash.js reads the data to generate a new page and then passes data to Program object - from getCards data service * directly handled by Program object - from localStorage * onstartup * when previous session is stored in localStorage Data Portal: \\ program.loadData(data)\\ Card(quest) constructor \\ The incoming data object is external to the closure compiler, and therefore references to it must use brackets-quoted-string notation. - We first pass the data object to program.loadData(). - Here the data is pulled out and loaded into internal objects, and the original external data object is discarded. - The internal objects are then accessed by dot-notation.