Here is my code:
public class engine extends Sprite{
package{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.*;
public class engine extends Sprite{
public var map:XML;
public function engine(){
map = loadMap("map.xml");
}
// Function for loading map from XML files
public function loadMap(xmlFileLocation:String){
var urlRequest = new URLRequest(xmlFileLocation);
var urlLoader = new URLLoader(urlRequest);
urlLoader.addEventListener(Event.COMPLETE,loadComplete);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR,loadError);
function loadComplete(){
var loadedMap:XML = new XML(urlLoader.data);
}
function loadError(){
trace("Error loading file.");
}
return loadedMap;
}
}
}
Problem:
With this line, map = loadMap(“map.xml”);, i am hoping to return value from loadMap function to map variable. In here, return loadedMap;, loadedMap is empty or undefined because loading takes longer than returning so it returns nothing. I need to return inside the loadComplete function somehow so that map variable gets loaded data from xml file.
On whole, i need to run parent functions return from the nested function. I am losing my mind with this.