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

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

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

Регистрация: Apr 2009
Сообщений: 141
По умолчанию обработать во Flash многострочный ответ от MySQL

добрый вечер

php - MySQL - Flash AS 3.0

по запросу из Flash база MySQL отдает от 1 до 30 строк

во Flash каждая строка присваивается переменным мувиклипа (мувиклипов соответственно 1 -30)

как удобнее (лучше) всего принимать данные во Flash (массив - единственный способ?), подскажите пожалуйста

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
xml, json

Старый 18.07.2010, 12:05
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 3  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
нужно только при помощи php и AS3

пока только предполагаю сделать так:
1.отправить из Flash запрос, в результате которого получить все id полученных строк
2. отправить из Flash запросы, в каждом из которых переданным параметром будет id одной строки

но как-то не нравится, может есть возможность по-другому организовать вывод строк из MySQL-php и прием их во Flash

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Это и было для передачи из PHP во Flash (AS3).

Вы можете изобрести свой велосипед, а заодно и придумать, как парсить его на стороне клиента. XML парсить не надо, он сразу после получения готов к использованию. JSON покомпактнее и для него есть готовые библиотеки.

Или Вы не знаете как преобразовать массив данных в XML на стороне PHP-скрипта?

Старый 18.07.2010, 12:56
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 5  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
создание xml и обход дерева полученного xml во Flash ставит в ступор

предидущее предположение тоже сфейлилось:

код php:
PHP код:
 do { 
$idphp=$row_present['p_id'];
$otvet="idq=$idphp";
echo 
$otvet;
 } while (
$row_present mysql_fetch_assoc($present)); 
код AS
Код AS3:
  var loader:URLLoader = URLLoader(e.target);
  var ima = new URLVariables(loader.data).idq;
name_txt.text = ima;
в поле name_txt выдал ответ(4 строки было):
Цитата:
5idq=6idq=29idq=28
то есть к ответу со второй строки AS решил добавить название переменной

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
не надо ничего обходить.

Если PHP отдает вот такой xml:
Код:
<?xml version="1.0" encoding="utf-8"?>
<response>
   <parameters>
       <parameter name="param1" value="Значение параметра 1" />
       <parameter name="param2" value="Значение параметра 2" />
       <parameter name="param3" value="Значение параметра 3" />
   </parameters>
</response
То в AS3 доступ к данным после загрузки:

Код AS3:
private function dataLoaderHandler(e:Event):void {
 
   var loader:URLLoader = URLLoader(e.target);
   var responseXML:XML = new XML(loader.data);
   var parametersList:XMLList = responseXML.parameters.parameter;
 
   for (var i:int=0;i<parametersList.length();i++) {
	trace("Параметр ", parametersList[i].attribute("name"),
                " значение:", parametersList[i].attribute("value") );
   }
 
}

но, с другой стороны, каждый делает, как ему удобно.

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

Регистрация: Apr 2009
Сообщений: 141
удобнее - как Вы описали, только чтото не получается у меня с xml

если не трудно киньте кодом как принять в AS следующий ответ от php

Код:
<?xml version="1.0" encoding="utf-8"?>
<response>
   <object_one>
       <parameter name="param1" value="Значение параметра 1" />
       <parameter name="param2" value="Значение параметра 2" />
       <parameter name="param3" value="Значение параметра 3" />
   </object_one>
      <object_two>
       <parameter name="param1" value="Значение параметра 1" />
       <parameter name="param2" value="Значение параметра 2" />
       <parameter name="param3" value="Значение параметра 3" />
   </object_two>
</response>

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Например, так.

Код AS3:
private function dataLoaderHandler(e:Event):void {
 
   var loader:URLLoader = URLLoader(e.target);
   var responseXML:XML = new XML(loader.data);
 
   var parametersObjectOne:XMLList = responseXML.object_one.parameter; 
   for (var i:int=0;i<parametersObjectOne.length();i++) {
	trace("Параметр object_one", parametersObjectOne[i].attribute("name"),
                " значение:", parametersObjectOne[i].attribute("value") );
   }
 
   var parametersObjectTwo:XMLList = responseXML.object_two.parameter; 
   for (i=0;i<parametersObjectTwo.length();i++) {
	trace("Параметр object_two", parametersObjectTwo[i].attribute("name"),
                " значение:", parametersObjectTwo[i].attribute("value") );
   }
 
}
Но, поскольку объектов явно может быть больше, лучше вместо object_one и object_two написать objectParameters, а one/two и т.д. вынести в атрибуты. Тогда можно обойтись циклом по objectParameters, а внутри него - по parameter.

Код:
<?xml version="1.0" encoding="utf-8"?>
<response>
   <objectParameters objectName="one">
       <parameter name="param1" value="Значение параметра 1" />
       <parameter name="param2" value="Значение параметра 2" />
       <parameter name="param3" value="Значение параметра 3" />
   </objectParameters>
   <objectParameters objectName="two">
       <parameter name="param1" value="Значение параметра 1" />
       <parameter name="param2" value="Значение параметра 2" />
       <parameter name="param3" value="Значение параметра 3" />
   </objectParameters>
</response>

Старый 19.07.2010, 02:15
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 9  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
спасибо

Старый 19.07.2010, 14:18
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 10  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
Может, попробовать с сериализованными объектами/коллекциями? - Организация сложнее, но в работе гораздо больше удовольствия, чем хмл и прочие.

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

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

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


 


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


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