Как получить 3 узла, используя AS3 и E4X?

#flash #actionscript-3 #e4x

#flash #actionscript-3 #e4x

Вопрос:

Я пишу класс в Main.as это выполняет URL-запрос и возвращает результат. Мне нужны 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 Тип XML-документа не найден, 1120 доступ к неопределенному свойству parseXML и 1180 вызов возможно неопределенного метода getXMLString. Как бы мне их также очистить?

Ответ №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);
        }
    }
  

Комментарии:

1. @SidC этот ответ исправит ваши ошибки. Если вам также нужна помощь в синтаксическом анализе вашего XML, покажите ее, пожалуйста.

2. Трассировка @SidC(resultXML.minTemp); трассировка (resultXML.maxTemp); трассировка (resultXML.Icon);

3. Спасибо всем. Мои синтаксические ошибки устранены. Когда я отлаживаю фильм, я получаю сообщение «Не удается отобразить исходный код в этом месте». Изначально я добавил три инструкции трассировки @George Profenza с той же ошибкой, затем прокомментировал их. Идеи?