|
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
Парсинг txt/XML
Добрый вечер.
Имеется var myXML:XML = new XML(); var XML_URL:String = "config.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); var lol:String = new String("lol"); function xmlLoaded(event:Event):void { myXML = XML(myLoader.data); var xmlDoc:XMLDocument = new XMLDocument(); xmlDoc.ignoreWhite = true; var menuXML:XML = XML(myLoader.data); xmlDoc.parseXML(menuXML.toXMLString()); for each (var ConfigItems:XML in myXML..ConfigureItems) { var textit:String = ConfigItems.textit.toString(); } } |
|
|||||
public class MyXMLLoader extends EventDispatcher{ private var _text : String; public function MyXMLLoader(){ ... } //*** public ***// public function get text():String{ return _text; } //*** handlers ***// private function xmlLoaded(event:Event):void { ... // получаете конфиг var textit:String = configItems.textit.toString(); dispatchEvent(new XmlLoaderEvent(XmlLoaderEvent.LOADED, textit)); } } public class XmlLoaderEvent extends Event{ public stataic const LOADED : String = "loaded"; private var _text : String; public function XmlLoaderEvent(type : String, text : String){ super(type); _text = text; } } 1. Просто спрашивать, когда нужно text у экземпляра лоадера. 2. Диспетчить событие сразу с данными. 3. Диспетчить событие о том, что данные есть и уже после этого вытаскивать их.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
Я в классах не пишу
var textit:String; var myXML:XML = new XML(); var XML_URL:String = "config.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); function xmlLoaded(event:Event):void { myXML = XML(myLoader.data); var xmlDoc:XMLDocument = new XMLDocument(); xmlDoc.ignoreWhite = true; var menuXML:XML = XML(myLoader.data); xmlDoc.parseXML(menuXML.toXMLString()); for each (var ConfigItems:XML in myXML..ConfigureItems) { textit = ConfigItems.textit.toString(); } } |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
var textit:String; var myXML:XML = new XML(); var XML_URL:String = "config.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); var lol:String = new String("lol"); function xmlLoaded(event:Event):void { myXML = XML(myLoader.data); var xmlDoc:XMLDocument = new XMLDocument(); xmlDoc.ignoreWhite = true; var menuXML:XML = XML(myLoader.data); xmlDoc.parseXML(menuXML.toXMLString()); for each (var ConfigItems:XML in myXML..ConfigureItems) { textit = ConfigItems.textit.toString(); } } trace(textit); В XML Что не так? |
|
|||||
1. Пишите в классах.
2. Впрочем, продиспетчить событие можно и из кадра. 3. Трейс показывает null, потому что выполнение кода попадает на трейс до того, как выполнится функция , тк загрузка -- асинхронная операция.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
Регистрация: Feb 2012
Сообщений: 36
|
Спасибо! Через таймер работает.
|
Часовой пояс GMT +4, время: 19:18. |
|
« Предыдущая тема | Следующая тема » |
|
|