【问题标题】:How to Get 3 Nodes using AS3 and E4X?如何使用 AS3 和 E4X 获得 3 个节点?
【发布时间】:2011-08-12 18:44:00
【问题描述】:

我正在 Main.as 中编写一个生成 urlRequest 并返回结果的类。我需要 3 个节点,minTemp、maxTemp 和 Icon。我正在为一个城市提出请求,因此这些节点应该只出现一次。我将如何构建 AS3 来获取这些节点及其值?

public class Main extends MovieClip {

public function Main() {

        var urlRequest:URLRequest=new URLRequest("http://myurl");
        var urlLoader:URLLoader=new URLLoader();
        var result:XmlDocument=new XMLDocument();

        urlLoader.addEventListener(Event.COMPLETE, parseXML);
        urlLoader.load(urlRequest);

        result.ignorWhite=true;
        result.parseXML(getXMLString());
        }
}

我收到错误 1046 XmlDocument 类型未找到,1120 访问未定义的属性 parseXML,以及 1180 调用可能未定义的方法 getXMLString。我该如何清除这些?

【问题讨论】:

    标签: flash actionscript-3 e4x


    【解决方案1】:

    你没有定义函数 parseXMl 也没有创​​建结果,这种方式应该可以工作:

    public class Main extends MovieClip {    
            public function Main() {
    
                    var urlRequest : URLRequest = new URLRequest("http://myurl");
                var urlLoader : URLLoader = new URLLoader();
    
                urlLoader.addEventListener(Event.COMPLETE, onXmlLoaded);
                urlLoader.load(urlRequest);
    
            }
    
            private function onXmlLoaded(event : Event) : void
            {
                XML.ignoreWhitespace= true;
                var urlLoader : URLLoader = event.currentTarget as URLLoader;
                var resultXML : XML = XML(urlLoader.data);
                trace(resultXML);
            }
        }
    

    【讨论】:

    • @SidC 这个答案将解决您的错误。如果您在解析 XML 方面也需要帮助,请出示。
    • @SidC trace(resultXML.minTemp);trace(resultXML.maxTemp);trace(resultXML.Icon);
    • 谢谢大家。我的语法错误已解决。调试电影时,我收到“无法在此位置显示源代码”。我最初添加了@George Profenza 的三个跟踪语句,同样的错误,然后将它们注释掉。想法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多