|
|
|||||
Регистрация: May 2014
Сообщений: 29
|
Загрузка данных в другом классе
Как грамотно реализовать загрузку данных (json с сайта) в другом классе?
Основной должен получать 2 переменные: _polyW = data.getPolyWidth(); _polyH = data.getPolyHeight(); а загрузка происходит в другом классе следующим образом: public class OnlineData extends Sprite { private var _polyWidth:int; private var _polyHeight:int; private var myLoader:URLLoader; public function OnlineData() { var json_URL:String = "http://***"; var myJSONURL:URLRequest = new URLRequest(json_URL); myLoader = new URLLoader(myJSONURL); myLoader.addEventListener(Event.COMPLETE, jsonLoaded, false, 0, true); } public function getPolyWidth():int { return _polyWidth; } public function getPolyHeight():int { return _polyHeight; } private function jsonLoaded(event:Event):void { myLoader.removeEventListener(Event.COMPLETE, jsonLoaded); var myJSON:String = String(myLoader.data); trace (myJSON); var json_data:Object=com.adobe.serialization.json.JSON.decode(myJSON); //проверка, есть ли такие свойства if (json_data.hasOwnProperty("width") && json_data.hasOwnProperty("height")) { _polyWidth = int(json_data["width"]); _polyHeight = int(json_data["height"]); trace (_polyWidth); } } } _polyW = data.getPolyWidth(); _polyH = data.getPolyHeight(); так как trace выдает все правильно, но polyW и PolyH нулевые. Как сделать, чтобы данные попадали в другой класс? |
|
|||||
Может быть после получения и обработки данных диспатчить событие, и потом только забирать свойства getPolyWidth и getPolyHeight?
|
|
|||||
Регистрация: May 2014
Сообщений: 29
|
Можете подсказать, как это сделать? Или где об этом хорошо написано? Что-то не нашел нужной информации (
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
public class OnlineData extends EventDispatcher { public const DATA_LOADED:String = "dataLoaded"; private var _polyWidth:int; private var _polyHeight:int; private var myLoader:URLLoader; public function OnlineData() { } public function load():void { var json_URL:String = "http://***"; var myJSONURL:URLRequest = new URLRequest(json_URL); myLoader = new URLLoader(myJSONURL); myLoader.addEventListener(Event.COMPLETE, jsonLoaded, false, 0, true); } public function get polyWidth():int { return _polyWidth; } public function get polyHeight():int { return _polyHeight; } private function jsonLoaded(event:Event):void { myLoader.removeEventListener(Event.COMPLETE, jsonLoaded); var myJSON:String = String(myLoader.data); trace (myJSON); var json_data:Object=com.adobe.serialization.json.JSON.decode(myJSON); //проверка, есть ли такие свойства if (json_data.hasOwnProperty("width") && json_data.hasOwnProperty("height")) { _polyWidth = int(json_data["width"]); _polyHeight = int(json_data["height"]); trace (_polyWidth); dispatchEvent(new Event(DATA_LOADED)); } } } private var _onlineData:OnlineData = new OnlineData(); _onlineData.addEventListener(OnlineData.DATA_LOADED, onDataLoaded); _onlineData.load(); //... private function onDataLoaded(event:Event):void { trace("- - - - - - - - - - - - - - -"); trace(_onlineData.polyWidth); trace(_onlineData.polyHeight); }
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 02.08.2015 в 23:59. |
Часовой пояс GMT +4, время: 01:08. |
|
« Предыдущая тема | Следующая тема » |
Теги |
AS3 , urlloader , данные , загрузка данных |
|
|