Checking for loaded data

Each function or method that loads data into a SWF file (except XMLSocket.send()) is asynchronous: the results of the action are returned at an indeterminate time.

Before you can use loaded data in a SWF file, you must check to see if it has been loaded. For example, you can't load variables and manipulate their values in the same script. In the following script, you can't use the variable lastFrameVisited until you're sure the variable has loaded from the file myData.txt:

loadVariables("myData.txt", 0);
gotoAndPlay(lastFrameVisited);

Each function or method has a specific technique you can use to check data it has loaded. If you use loadVariables() or loadMovie(), you can load information into a movie clip target and use the data event of the onClipEvent() handler to execute a script. If you use loadVariables() to load the data, the onClipEvent(data) handler executes when the last variable is loaded. If you use loadMovie() to load the data, the onClipEvent(data) handler executes each time a fragment of the SWF file is streamed into Flash Player.

For example, the following button action loads the variables from the file myData.txt into the movie clip loadTargetMC:

on(release){
  loadVariables("myData.txt", _root.loadTargetMC);
}

An onClipEvent() handler assigned to the loadTargetMC instance uses the variable lastFrameVisited, which is loaded from the file myData.txt. The following will execute only after all the variables, including lastFrameVisited, are loaded:

onClipEvent(data) {
  goToAndPlay(lastFrameVisited);
}

If you use the XML.load(), XML.sendAndLoad(), and XMLSocket.connect() methods, you should define a handler that will process the data when it arrives. This handler is a property of an XML or XMLSocket object to which you assign a function you have defined. The handlers are called automatically when the information is received. For the XML object, use XML.onLoad() or XML.onData(). For the XMLSocket object, use XMLSocket.onConnect().

For more information, see Using the XML class and Using the XMLSocket class.