![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2011
Сообщений: 27
|
пытаюсь сделать так, чтобы массив, состоящий из массивов (3 штуки) парсированных от xml строк, загружался из мэйна. но компилятор выдает:
[Fault] exception, information=TypeError: Error #1010: Термин не определен и не имеет свойств. Fault, Main() at Main.as:22 Main.as package XmlMassiv { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.display.*; import flash.net.*; import flash.events.*; import flash.system.*; /** * ... * @author nnn */ public class Main extends Sprite { public function Main():void { var t:xmlPars = new xmlPars(); trace(t.massiv[0][0]); } } } package XmlMassiv { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.display.*; import flash.net.*; import flash.events.*; import flash.system.*; /** * ... * @author nnn */ public class xmlPars { var massiv:Array=new Array(); public function xmlPars ():void { var xmlLoader:URLLoader= new URLLoader(); xmlLoader.load(new URLRequest("xml")); xmlLoader.addEventListener(Event.COMPLETE, LoadXML); } public function LoadXML(e:Event):void { massiv[0] = new Array(); massiv[1] = new Array(); massiv[2] = new Array(); var pubDateXML:Array = new Array (); var descriptionXML:Array = new Array (); var titleXML:Array = new Array (); var xmlData = new XML(e.target.data); for (var j:Number = 0; j < xmlData..item.length(); j++ ) { massiv[0][j] = String(xmlData..item.pubDate[j]); } for (var i:Number = 0; i < xmlData..item.length(); i++ ) { massiv[1][i] = String(xmlData..item.title[i]); } for (var k:Number = 0; k < xmlData..item.length(); k++ ) { massiv[2][k] = String(xmlData..item.description[k]); } } } } Последний раз редактировалось MAGISTRS; 21.04.2012 в 02:31. |
|
|||||
|
LoadXML срабатывает после того как произошел запрос на получение данных (на загрузку необходимо время)
massiv вляется internal (по умолчанию), следовательно будет доступен только в случае нахождения в пределах одного пакета обоих классов (по коду так и есть, но код ужасен)
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 27
|
честно говоря не очень понял что нужно сделать чтобы ошибка не вылетала и все работало..
|
|
|||||
private var t:xmlPars; public function Main():void { super(); t = new xmlPars(onLoadXML); } private function onLoadXML():void { trace(t.massiv[0][0]); } //.. public var massiv:Array=new Array(); private var _onComplete:Function; //.. public function xmlPars (onComplete:Function = null):void { _onComplete = onComplete; //.. } public function LoadXML(e:Event):void { //... if (_onComplete != null) { _onComplete(); _onComplete = null; } } Название классов нужно начинать с большой буквы, а названия методов с маленькой. Необходимо слушать событие ошибки загрузки.
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 21.04.2012 в 12:20. |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 27
|
ОГРОМНОЕ СПАСИБО!!! )))))
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:36. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|