Страница 7 из 32

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 12:02
agni
хочу получить ответ php файла,
вот этот, в 27 строке Вашего php файла:
27. echo "OK";
немного изменил код

Код: Выделить всё

package {    import flash.net.*;    import flash.display.*;    import flash.text.*;    import flash.events.*;     public class Main extends Sprite    {        public function Main():void        {            // создание запроса            var stat_loader:URLLoader = new URLLoader  ;            var stat_request:URLRequest = new URLRequest("http://адрес");            stat_request.method = URLRequestMethod.POST;             // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables  ;            stat_vars['auth_key'] = LoaderInfo(root.loaderInfo).parameters.auth_key;            stat_vars['viewer_id'] = LoaderInfo(root.loaderInfo).parameters.viewer_id;            stat_request.data = stat_vars;            // выполнение запроса            stat_loader.load(stat_request);            stat_loader.addEventListener(Event.COMPLETE, stat_loader_fin);        }        function stat_loader_fin(e:Event):void        {            var pole_txt:TextField = new TextField  ;            var loader:URLLoader = URLLoader(e.target);            var answer = new URLVariables(loader.data).success;            pole_txt.x = 100;            pole_txt.y = 25;            pole_txt.text = answer;            addChild(pole_txt);        }     }}
не работает, что не так делаю? :(

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 16:31
bodnar
Вы php изменяли? Эта строчка
agni писал(а):

Код: Выделить всё

var answer = new URLVariables(loader.data).success;
будет работать если в php выводится что-то вроде
"success=значение&parameter=value&..."

Просто распечатать ответ можно как то так:

Код: Выделить всё

pole_txt.test=loader.data;

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 19:24
agni
php не изменял
только AS

функция stat_loader_fin почему то не вызывается :(

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 20:13
Александр
agni писал(а):php не изменялтолько AS
Если менять код AS, с целью обработать ответ другим способом, нужно и этот ответ выдать нужным образом.
Точно функция не вызывается? Или кажется что не вызывается?
Проверь что ссылка к скрипту верна. Создай на сцене поле result_tf и в функции stat_loader_fin что-нибудь выведи в этом поле, например:

Код: Выделить всё

result_tf.text='111';
Пробуй самостоятельно отлавливать момент, когда в приложении что-то идёт не так как надо.

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 20:24
agni
Александр писал(а):
agni писал(а):php не изменялтолько AS
Если менять код AS, с целью обработать ответ другим способом, нужно и этот ответ выдать нужным образом.
Точно функция не вызывается? Или кажется что не вызывается?
Проверь что ссылка к скрипту верна. Создай на сцене поле result_tf и в функции stat_loader_fin что-нибудь выведи в этом поле, например:

Код: Выделить всё

result_tf.text='111';
Пробуй самостоятельно отлавливать момент, когда в приложении что-то идёт не так как надо.
приложение работает, в БД строки меняет, счётчик увеличивает

вывод, что не работает, делаю в связи с тем, что следующий код (строка 33) в поле pole_txt.text ничего не выводит:

Код: Выделить всё

package{    import flash.net.*;    import flash.display.*;    import flash.text.*;    import flash.events.*;     public class Main extends Sprite    {        public function Main():void        {            // создание запроса            var stat_loader:URLLoader = new URLLoader  ;            var stat_request:URLRequest = new URLRequest("http://адрес");            stat_request.method = URLRequestMethod.POST;             // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables  ;            stat_vars['auth_key'] = LoaderInfo(root.loaderInfo).parameters.auth_key;            stat_vars['viewer_id'] = LoaderInfo(root.loaderInfo).parameters.viewer_id;            stat_request.data = stat_vars;            // выполнение запроса            stat_loader.load(stat_request);            stat_loader.addEventListener(Event.COMPLETE, stat_loader_fin);        }        function stat_loader_fin(e:Event):void        {            var pole_txt:TextField = new TextField  ;            var loader:URLLoader = URLLoader(e.target);            var answer = new URLVariables(loader.data).success;            pole_txt.x = 100;            pole_txt.y = 25;            pole_txt.text = 'РАБОТАЙ ДАВАЙ'; // я так понимаю должен работать в любом случае            addChild(pole_txt);        } 
какая-то тупая ошибка где-то :oops:

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 21:07
Александр
agni
Ну так пробуй, тестируй. Тестируй не загружая в контакт, меняя что-то в коде, чтобы найти в какой строчке появляется ошибка. Смотри в окно вывода. Если ты будешь ждать что кто-то тебе поможет с таким, то это ожидание может быть очень долгим. Готов ждать очень долго, не пытаясь разобраться самостоятельно? Это плохой вариант...
Я вставил твой код в приложение и увидел:

Код: Выделить всё

Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.    at Error$/throwError()    at flash.net::URLVariables/decode()    at flash.net::URLVariables()    at Untitled_fla::MainTimeline/stat_loader_fin()    at flash.events::EventDispatcher/dispatchEventFunction()    at flash.events::EventDispatcher/dispatchEvent()    at flash.net::URLLoader/onComplete() 
Закомментировал

Код: Выделить всё

// var answer = new URLVariables(loader.data).success;
и

Код: Выделить всё

pole_txt.text = 'РАБОТАЙ ДАВАЙ';
стало выводить текст! А следовательно твоё утверждение, что "функция stat_loader_fin почему то не вызывается" - не верно. То есть ты заведомо даешь неверное описание, тому кто мог бы тебе подсказать.

Приложение останавливалось на строке, которая не смогла верно обработаться.
Реши, хочешь ты использовать ту строку или выводить ответ другим способом, который написал bodnar.
Если хочешь делать так:

Код: Выделить всё

URLVariables(loader.data).success
то разберись как этим правильно пользоваться. А об этом bodnar тоже уже написал.

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 21:12
agni
функция все-таки вызывается
если вывод текста делать в самом начале - текстовое поле создаётся
если вывод делать после объявления:
var loader:URLLoader = URLLoader(e.target); - текстовое поле создаётся

не работает строка:
var answer = new URLVariables(loader.data).success;
и всё что записано в функции после этой строки :shock:

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 21:14
agni
пока писал - уже ответили, спасибо :)

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 09 июл 2010, 21:18
Александр
Вот это ответ, чтобы всё заработало, без изменений последнего варианта AS кода.
bodnar писал(а):будет работать если в php выводится что-то вроде"success=значение&parameter=value&..."

Re: Создание базы пользователей приложения и ведение статистики

Добавлено: 10 июл 2010, 10:52
agni
заменил

Код: Выделить всё

echo  "OK";
на

Код: Выделить всё

$qtData="success=$table_name";     echo $qtData;
все работает

php написанные под AS2 работают и для AS3