XML变量可以';无法更改或访问(AS3)
我目前创建了一个类,可以用来访问AS3中的所有xml数据。但我遇到的问题是在xmlIsLoaded函数中更改变量。当我跟踪xml变量时,它显示xml数据,但当我在loadPanelData()函数中跟踪它时,我得到了一个空引用。在下面的代码中,我尝试了一个int变量,当我测试它时,它跟踪初始值0,并且没有更改为2 显然,当谈到xmlIsLoaded是如何工作的时,我并不理解其中的一些内容,但是访问xml数据是必要的(当我只是在没有侦听器的情况下执行常规函数时,xml变量是空的,并且不跟踪任何内容)。希望有人能找到一个解决方案,因为我还不熟悉在AS3中使用XMLXML变量可以';无法更改或访问(AS3),xml,actionscript-3,Xml,Actionscript 3,我目前创建了一个类,可以用来访问AS3中的所有xml数据。但我遇到的问题是在xmlIsLoaded函数中更改变量。当我跟踪xml变量时,它显示xml数据,但当我在loadPanelData()函数中跟踪它时,我得到了一个空引用。在下面的代码中,我尝试了一个int变量,当我测试它时,它跟踪初始值0,并且没有更改为2 显然,当谈到xmlIsLoaded是如何工作的时,我并不理解其中的一些内容,但是访问xml数据是必要的(当我只是在没有侦听器的情况下执行常规函数时,xml变量是空的,并且不跟踪任何内容
public class XMLLoader extends EventDispatcher
{
var xml:XML;
var productElement:XMLList;
var productElementXML:XML;
var num:int = 0;
public function XMLLoader()
{
var xmlUrl:URLLoader = new URLLoader(new URLRequest("Project/XMLFiles/PagesXML.xml"));
xmlUrl.addEventListener(Event.COMPLETE, xmlIsLoaded);
}
private function xmlIsLoaded(e:Event)
{
xml = new XML(e.target.data);
num = 2;
//trace("this is the xml starting point" + xml.pages + "this is the xml in the class");
dispatchEvent(new Event(Event.COMPLETE));
}
public function loadPanelData()
{
trace("product element test" + num);
}
}
首先,需要为变量定义“”。i、 e
public var xml:XML;
public var productElement:XMLList;
public var productElementXML:XML;
public var num:int = 0;
第二,什么时候调用方法loadPanelData()?您应该在执行xmlIsLoaded方法后调用它
侦听该事件。通过附加eventListener并创建事件处理程序(代码未显示?)来执行和跟踪num的值,完成事件,或者直接在xmlIsLoaded方法中调用该方法