Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2010, 20:17
Kostetik вне форума Посмотреть профиль Отправить личное сообщение для Kostetik Найти все сообщения от Kostetik
  № 1  
Ответить с цитированием
Kostetik

Регистрация: Jun 2010
Сообщений: 3
По умолчанию Как возвратить в главный класс?

Доброго времени суток.
Пытался написать скрипт отправки на сервер данных и получения ответа, но столкнулся с проблемой. Напишу кодом

Код AS3:
файл main.as
var ANSWER;
var Server = new server();
 
class main {
 function main() {
  var Var = 1;
  Server.sendToAndReturn(Var);
 }
}
Код AS3:
файл server.as
class server {
//переменные
 function server() {
 //инициализация
 }
 
 function sendToAndReturn(Var) {
  sVar.Var = Var; 
  Request.data = sVar;
  Loader.load(Request); 
  Loader.addEventListener(Event.COMPLETE, f);
 }
 
 function f(evt:Event) {
  Loader.removeEventListener(Event.COMPLETE, f);
  //Как возвратить отсюда в функцию main и присвоить ANSWER значения Loader.data???
 }
 
}


Последний раз редактировалось Kostetik; 19.06.2010 в 21:05.
Старый 19.06.2010, 20:53
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
ничего не ясно. у Вас не код, а непоймичто. что не работает не ясно. все экстрасенсы форума сейчас в отпуске.

Старый 19.06.2010, 21:09
Kostetik вне форума Посмотреть профиль Отправить личное сообщение для Kostetik Найти все сообщения от Kostetik
  № 3  
Ответить с цитированием
Kostetik

Регистрация: Jun 2010
Сообщений: 3
Это приблизительный код.
Я спросил. как возвратить значения Loader.data из вызванной addEventListener'ом функции f в переменную ANSWER в main.

Наверно так.

Старый 19.06.2010, 21:53
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
вероятно передать callback при вызове Server.sendToAndReturn

Старый 19.06.2010, 22:25
Kostetik вне форума Посмотреть профиль Отправить личное сообщение для Kostetik Найти все сообщения от Kostetik
  № 5  
Ответить с цитированием
Kostetik

Регистрация: Jun 2010
Сообщений: 3
В принципе то не важно из какой функции он попадет туда. Самое главное что бы он туда попал))

А можно ли сделать так что бы sendToAndReturn остановилась и ждала пока функция f не завершилась.

Возможны ли какие нибудь другие реализации?

ЗЫ Я искренне извиняюсь за нупство. Раньше изучал С++, но как то пока не пригодилось, решил сменить чуток сферу деятельности))

Старый 20.06.2010, 00:07
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Все немного не так.
Если точнее - совсем не так.

Как грузить - пример вот тут (внизу):
http://help.adobe.com/ru_RU/AS3LCR/F...URLLoader.html

Как возвращать - паковать в собственное событие. Я пользуюсь вот таким классом для этого:

Код AS3:
package main {
	import flash.events.Event;
 
	public class AppEvent extends Event {
 
		public function AppEvent(type:String, eventData:Object, bubbles:Boolean = false, cancelable:Boolean = false) {
			_eventData = eventData;
			super(type, bubbles, cancelable);
		}
 
		override public function clone():Event {
			return new AppEvent(type, eventData, bubbles, cancelable);
		}
 
		protected var _eventData:Object;
 
		public function get eventData():Object { return _eventData; }
	}
 
}
Как паковать:
Код AS3:
        private function completeHandler(event:Event):void {
 
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
 
            // Пересылаем наверх результат запроса
	    var appEvent:AppEvent = new AppEvent("dataReceived",loader.data,true)
	    dispatchEvent(appEvent);	    
 
        }
Событие с данными надо отловить в родителе лоадера или вверх по иерархии. Чтобы событие не потерялось по дороге, надо следить, чтобы объекты, по которым оно должно пройти, были вложены друг в друга через addChild.


Последний раз редактировалось mikhailk; 20.06.2010 в 00:11.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.