Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML变量可以';无法更改或访问(AS3)_Xml_Actionscript 3 - Fatal编程技术网

XML变量可以';无法更改或访问(AS3)

XML变量可以';无法更改或访问(AS3),xml,actionscript-3,Xml,Actionscript 3,我目前创建了一个类,可以用来访问AS3中的所有xml数据。但我遇到的问题是在xmlIsLoaded函数中更改变量。当我跟踪xml变量时,它显示xml数据,但当我在loadPanelData()函数中跟踪它时,我得到了一个空引用。在下面的代码中,我尝试了一个int变量,当我测试它时,它跟踪初始值0,并且没有更改为2 显然,当谈到xmlIsLoaded是如何工作的时,我并不理解其中的一些内容,但是访问xml数据是必要的(当我只是在没有侦听器的情况下执行常规函数时,xml变量是空的,并且不跟踪任何内容

我目前创建了一个类,可以用来访问AS3中的所有xml数据。但我遇到的问题是在xmlIsLoaded函数中更改变量。当我跟踪xml变量时,它显示xml数据,但当我在loadPanelData()函数中跟踪它时,我得到了一个空引用。在下面的代码中,我尝试了一个int变量,当我测试它时,它跟踪初始值0,并且没有更改为2

显然,当谈到xmlIsLoaded是如何工作的时,我并不理解其中的一些内容,但是访问xml数据是必要的(当我只是在没有侦听器的情况下执行常规函数时,xml变量是空的,并且不跟踪任何内容)。希望有人能找到一个解决方案,因为我还不熟悉在AS3中使用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方法中调用该方法