#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 с той же ошибкой, затем прокомментировал их. Идеи?