Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с возвратом значения. (http://www.flasher.ru/forum/showthread.php?t=151399)

vobar 27.02.2011 16:22

Проблема с возвратом значения.
 
Желаю изобразить более-менее универсальную функцию для обмена данными с PHP:

Код:

        //отправлять уже готовую строку типа " name='вася'&pwd='***' "
        //script_name - имя скрипта, для обработки данных
        //post_data - данные для отправки в скрипт в GET|POST формате

        public function php_call(script_name:String, post_data:String)
        {
                var var_load:URLLoader = new URLLoader  ;
                //переменную URL_request связываем с файлом скрипта,
                //в который мы пошлем данные для обработки
                var URL_request:URLRequest = new URLRequest(script_name);

                //метод передачи данных - POST
                URL_request.method = URLRequestMethod.POST;

                //записываем отправляемые данные
                var URL_vars:URLVariables = new URLVariables(post_data);
                URL_vars.dataFormat = URLLoaderDataFormat.VARIABLES;
               
                URL_request.data = URL_vars;
                var_load.load( URL_request );
                var_load.addEventListener(Event.COMPLETE, receive_response);
               
                function receive_response(e:Event):void
                {
                        var loader:URLLoader = URLLoader(e.target);
                        var script_data = new URLVariables(loader.data);
                        //как сделать так, чтобы script_data попала в функцию php_call уже ПОСЛЕ получения данных (для обработки и занесения в return)?
                }
                return ...
                //преобразование полученного ответа в нечто читабельное :Р
                //например в ассоциативный массив, вида:
                //<имя переменной>:<значение переменной>
        }

как сделать так, чтобы script_data из receive_response попала в функцию php_call уже ПОСЛЕ получения данных (для обработки и занесения в return)?

я понимаю, что проблема в асинхронности, но есть ли возможность сделать так, чтобы обязательно скрипт дожидался получения данных?
буду признателен за указание - в какую сторону копать примерно :)

(я только начал изучать AS3 потому прошу не судить строго)

etc 27.02.2011 18:53

Остановить выполнение потока для получения данных невозможно. Поэтому нет.

vobar 09.06.2011 09:52

Спасибо большое. Разобрался с системой асинхронных событий :) вот как быдлокодерство заклинивает мозги.
Просто надо было подумать + покурить форум :)


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

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