Показать сообщение отдельно
Старый 26.07.2015, 18:41
AlexAS3 вне форума Посмотреть профиль Отправить личное сообщение для AlexAS3 Найти все сообщения от AlexAS3
  № 1  
Ответить с цитированием
AlexAS3

Регистрация: May 2014
Сообщений: 29
По умолчанию Загрузка данных в другом классе

Как грамотно реализовать загрузку данных (json с сайта) в другом классе?
Основной должен получать 2 переменные:
_polyW = data.getPolyWidth();
_polyH = data.getPolyHeight();

а загрузка происходит в другом классе следующим образом:
Код AS3:
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 нулевые.

Как сделать, чтобы данные попадали в другой класс?