似乎无法在函数外部获取myXML的值,尽管在外部声明。我在这里错过了什么?数据在函数内正确加载和跟踪。
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("flightPlannerBoard.xml"));
var myXML:XML;
// Check XML data fully loaded
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
myXML = new XML(e.target.data);
//trace(myXML);
}
trace(myXML);
答案 0 :(得分:1)
由于ActionScript与其他人所说的不同,因此您无法通过代码放置来控制执行流程。您必须做的是通过事件控制执行,因此您要对加载的XML执行的任何操作都应该在processXML
函数或从processXML调用的另一个函数中:
var myXML:XML;
function processXML(e:Event):void {
myXML = new XML(e.target.data);
trace(myXML); //this trace will work
doNextAction();
}
function doNextAction():void {
trace(myXML); //this trace will also work
}
答案 1 :(得分:0)
您应该在函数外部声明XML变量,以便能够在另一个函数中使用它
private var myXML:XML;
答案 2 :(得分:0)
Actionscript是一种异步语言,意味着在文件加载之前将调用回调“外部”的跟踪。您的案例中的执行顺序是: