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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Jun 2007
Сообщений: 5
По умолчанию Получение данных от PHP скрипта.

Здравствуйте!
Писал некогда рекламную игру на flash. Спустя некоторое время добавили вместе с php-программистом статистику для данной игры.
Недавно полетел комп и я случайно () отформатировал жесткий диск. Файлы восстановить не удалось. Нашёл на почте старый исходник, в котором было всё, кроме пересылки значений. Начальник требует восстановить исходник дабы внести изменения. Всё сделал-написал, но есть одна проблема.
---------------------------
Собственно проблема.
---------------------------
Формирую запрос, который успешно принимается сервером, передаваемые мною данные заносятся в БД, а вот запрос (даные), который формируется для меня скриптом принять не могу. Пробовал использовать функции sendAndLoad и load. Обе возвращают значение true (передача прошла). Скрипт работает на 100% (висит рабочая swf-ка с игрой да и проверка в ручную (ввод запроса через адресную строку) свидетельствует об этом).
Пишу вроде всё как в прошлый раз. Возможно у меня проблемы с самим Macromedia Flash или с проектом? Пробовал создавать новый проект, писали php-скрипт, который просто выдавал мне переменную - то же самое. Обе функции не работают.
Мой запрос
Код:
var resultVars=new LoadVars();
var myLoadVars=new LoadVars();
myLoadVars.gametime=_global.gametime;
...
myLoadVars.score=10;
url="http://www.сайт.ru/папка/скрипт.php";
myLoadVars.sendAndLoad(url,resultVars,"GET");
Скрипт успешно принимает данные из объекта myLoadVars, но объект resultVars после передачи остается пуст. Пробовал передавать/принимать в один объект - то же самое, после выполнения функции sendAndLoad объект продолжает содержать лишь мой запрос.
Помогите! Начальник беснует!

P.S. Видел в сети такой вариант записи:
var myLoadVars:LoadVars=new LoadVars(); Результат тот же.


Последний раз редактировалось Loengreen; 27.06.2007 в 23:25.
Старый 27.06.2007, 18:15
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
а где resultVars.onLoad() ?

Старый 27.06.2007, 18:30
Loengreen вне форума Посмотреть профиль Отправить личное сообщение для Loengreen Найти все сообщения от Loengreen
  № 3  
Ответить с цитированием
Loengreen

Регистрация: Jun 2007
Сообщений: 5
Зачем? Это я тоже добавлял... но только для проверки прошла передача или нет.
Функция sendAndLoad передает и получает данные.
sendVar.sendAndLoad(url, loadVar, "GET (или POST)");
В результате выполнения этого запроса отправляются данные из объекта sendVar и принимаются данные в объект loadVar... Вроде так...
Или что то не так понимаю?
ВЫ не могли бы написать подробнее... что вы имели ввиду?

Старый 27.06.2007, 20:23
Loengreen вне форума Посмотреть профиль Отправить личное сообщение для Loengreen Найти все сообщения от Loengreen
  № 4  
Ответить с цитированием
Loengreen

Регистрация: Jun 2007
Сообщений: 5
Ну. Да.

Моя задача отправить серверу (скрипту) данные и получить от него необходимые переменные, которые я ему верну при следующей передачи.
При первой передачи мы определяем победа или поражение и отправляем всю статическую информацию. Во второй передаче содержатся выданное сервером кодовое слово и номер последней записи в БД (которые я получаю от серва при первой передачи). Разбиение на два этапа сделано для того, что бы учитывать и тех людей, которые после игры не стали вводить ИФО и просто закрыли окно.
Ваш код позволит мне только вывести на экран целиком весь объект или сообщение об ошибке. У меня другая проблема - ДАННЫЕ ПРОСТО НЕ ПРИНИМАЮТСЯ . Не приходят и всё. Или если я вставлю такой кусок кода всё будет ок?
Пошёл пробовать.

Старый 27.06.2007, 19:53
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 5  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
sendAndLoad отправляет данные и указывает объект для приема.
onLoad вызывается, когда ответ приходит, или когда таймаут истекает.
Код:
resultVars.onLoad = function(ok){

ok ? trace(this.toString()) : trace('failed');

}


Последний раз редактировалось Kikasso; 27.06.2007 в 19:56.
Старый 27.06.2007, 20:49
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
В момент вашей проверки данных ещё нет. Этож не телепатия.

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

Регистрация: Jun 2007
Сообщений: 5
Да! спасибо Вам огромное!
Сделал как вы сказали. Видимо сервер галимые или еще что-то, но ответа от php скрипта приходится ждать долго.
В связи с этим вопрос.
Для того что бы нормально принять переменные мне нужно написать так?
Код:
resultVars.onLoad = function(ok){
if (ok) {
   _global.id=resultVars.id;
   _dlobal.word=resultVars.word;
  } else { trace('failed'); }
}


Последний раз редактировалось Loengreen; 27.06.2007 в 23:23.
Старый 27.06.2007, 22:00
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 8  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
только не dlobal ))
Ну да. Пишите что угодно, onLoad вызывается когда переменные пришли.
Изнутри loadVars можно писать
Код:
_global.id = this.id;
И тегами [code] свой код обводите на форуме, вы в приличном месте. Изменить - расширеный - кнопка с решеткой.

Старый 27.06.2007, 23:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Loengreen, отредактируйте свои посты и оформите код тегами [code][/code].

Старый 27.06.2007, 23:22
Loengreen вне форума Посмотреть профиль Отправить личное сообщение для Loengreen Найти все сообщения от Loengreen
  № 10  
Ответить с цитированием
Loengreen

Регистрация: Jun 2007
Сообщений: 5
Спасибо Вам огромное ещё раз!
Всё сделал, всё работает, дети рады, начальник успокоился.
Мне интересно, как я в прошлый раз без этой функции умудрился всё сделать?

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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