![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Адрес: Кривой Рог
Сообщений: 117
|
здравствуйте. извращаюсь на предмет ООП. предположим, есть такой код:
var response:XML; public static function f1() { //other code var request:URLRequest = new URLRequest("..."); var loader:URLLoader = new URLLoader(); loader.load(request); loader.addEventListener(Event.COMPLETE, f2); } public static function f2(e:Event) { response = new XML(e.target.data); } в конец f2, то оно выдаст результат, а если в конец f1, то придёт пустой ответ, так как f2 ещё не выполнилось. но в сложившейся ситуации мне нужен ответ как раз из f1... возможно ли из этой функции как-то выловить завершение f2, чтобы получить ответ? |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Да, конечно.
Ставьте в f1 цикл while(!JesusChristСoming), в котором проверяйте флаг получения ответа в f2, как только он выставится в true, возвращайте свой response Но мне кажется, это форменное извращение ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
mikhailk, во флеше всего один поток на ActionScript.
|
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Event.COMPLETE никак не может обработаться до того, как завершится вызов f1, в которой был для него создан обработчик.
Так что ответ скорее нет. Не однозначно нет, т.к. f2 может вызывать f1, но через это место - сложнее и никому не надо. |
|
|||||
|
Регистрация: Jan 2010
Адрес: Кривой Рог
Сообщений: 117
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Вообще-то, да.
Значит нельзя. |
|
|||||
public class XMLContainer{ public var data:XML; public function XMLContainer(){ } } //............ private static var _response:XMLContainer=new XMLContainer(); public static function f1():XMLContainer { //other code var request:URLRequest = new URLRequest("..."); var loader:URLLoader = new URLLoader(); loader.load(request); loader.addEventListener(Event.COMPLETE, f2); return _response; } public static function f2(e:Event) { _response.data = new XML(e.target.data); }
__________________
ranga Последний раз редактировалось incvizitor; 23.07.2010 в 17:13. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
incvizitor, а если надо здесь и сейчас?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
я так понимаю, топикстартер хочет написать класс доступа к внешним ресурсам, который возвращал бы результат в том же методе, которым осуществляется доступ. Чтобы избавиться от событийной модели.
Если у него получится, я тоже попользуюсь. ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|