![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 68
|
Хорошо ,ещё раз, но развёрнутее спрошу
package { import flash.display.MovieClip; import flash.net.URLRequest; import flash.net.URLVariables; import flash.events.*; import flash.net.*; public class XMLDataLoader extends MovieClip { var path_to_script:String; private var req:URLRequest=new URLRequest(); private var loader:URLLoader = new URLLoader(); private var list:XMLList = new XMLList(); private var regionsXML:XMLList = new XMLList(); private var variables:URLVariables = new URLVariables(); public var currentKPI:String = 'block'; public var currentRegion:String = 'KI'; public var displayLevel:String = 'all'; public var lessisbetter:int = 1; public var mapRegionData:Object; public var mapRegionDataArray:Array = new Array(); public var mapRegionDataArray1:Array = new Array(); public function XMLDataLoader() { req.url = "/index.php"; req.method = URLRequestMethod.GET; variables.kpi = currentKPI; variables.lessisbetter = lessisbetter; variables.level = displayLevel; req.data = variables; loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, completeHandler); } public function loadXMLData():void { try { loader.load(req); } catch (error:Error) { trace("Unable to load URL"); } } private function completeHandler(event:Event) { regionsXML = XMLList(event.target.data).oblasts.oblast; for each (var item:XML in regionsXML) { mapRegionData = new Object(); mapRegionData.region = item. @ name.toString(); mapRegionData.region_short = item. @ short.toString(); mapRegionDataArray.push(mapRegionData); //trace(mapRegionDataArray.length); } trace('Data loaded'); addEventListener("customEvent", handleEvent); dispatchEvent(new Event("customEvent")); } public function handleEvent(event:Event):void { mapRegionDataArray1=mapRegionDataArray; } } } package { import flash.display.Sprite; import XMLDataLoader; public class Main extends Sprite { private var xmlDataLoader:XMLDataLoader; public static const LIFE_COLOR:Number= 0xFF0000; public static const KS_COLOR:Number = 0x0182FE; public static const MTS_COLOR:Number = 0x00C590; public function Main() { xmlDataLoader = new XMLDataLoader; xmlDataLoader.loadXMLData(); trace(xmlDataLoader.mapRegionDataArray1[0].short); } } } Получается что когда я вызываю xmlDataLoader.mapRegionDataArray1[0].short из Main, то похоже в этот момент переменная ещё не существует, потому что если сделать вывод в completeHandler, то всё конечно ок. Какой-то евент нужно использовать или как-то по другому код организовать надо? Попробовал типа свой бросать, но толку никакого от того |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
переместить
mapRegionDataArray1=mapRegionDataArray; в completeHandler (handleEvent и addEventListener("customEvent", handleEvent); оттуда можно убрать) и package { import flash.display.Sprite; import XMLDataLoader; public class Main extends Sprite { private var xmlDataLoader:XMLDataLoader; public static const LIFE_COLOR:Number= 0xFF0000; public static const KS_COLOR:Number = 0x0182FE; public static const MTS_COLOR:Number = 0x00C590; public function Main() { xmlDataLoader = new XMLDataLoader; xmlDataLoader.loadXMLData(); xmlDataLoader.addEventListener("customEvent", handleEvent); } public function handleEvent(event:Event):void { xmlDataLoader.removeEventListener("customEvent", handleEvent); trace(xmlDataLoader.mapRegionDataArray1[0].short); } } }
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|