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

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

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

Регистрация: Mar 2012
Сообщений: 13
Cool SOAP, FLex и загрузка image и XML

Всем привет!

Нужен совет и небольшая помощь.

Возникла идея передавать с помощью WebService во Flex картинки и XML-документ (передавать не ссылки на объекты, а именно сами объекты). Картинку впоследствии вставить в <mx:image>, XML - отобразить как текст.

Как такое организовать?

Старый 28.03.2012, 12:52
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Картинку можно в base64 передавать, а про XML-как текст не очень понятно.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 28.03.2012, 13:39
Sn0wyDream вне форума Посмотреть профиль Отправить личное сообщение для Sn0wyDream Найти все сообщения от Sn0wyDream
  № 3  
Ответить с цитированием
Sn0wyDream

Регистрация: Mar 2012
Сообщений: 13
Насчет картинки понял, спасибо.

Насчет XML: есть некий файл doc.xml, содержащий в себе определенную информацию.
Этот файл с помощью PHP на сервере берется из бд. Его необходимо передать во Flex с помощью WebService для дальнейшей работы.
В принципе это текст... я так понимаю, его как-то нужно преобразовать в строку на сервере, передать в Flex, в Flex преобразовать в объект XML.

Старый 28.03.2012, 13:55
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 4  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
В принципе это текст... я так понимаю, его как-то нужно преобразовать в строку на сервере, передать в Flex, в Flex преобразовать в объект XML.
XML - и так является строкой, ничего вам не нужно переводить, так и шлите, а на клиенте просто XML(data) сделайте.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 28.03.2012, 23:43
Sn0wyDream вне форума Посмотреть профиль Отправить личное сообщение для Sn0wyDream Найти все сообщения от Sn0wyDream
  № 5  
Ответить с цитированием
Sn0wyDream

Регистрация: Mar 2012
Сообщений: 13
Не очень понимаю, буду благодарен за более подробное объяснение.

В базе данных содержится файл doc.xml (либо другой текстовый документ .doc, .xls). В php загружаем из базы данных. Его как-то надо передать через soap в flex, в flex'e в дальнейшем использовать.
Для передачи через soap его нужно трансформировать в строку? Либо передавать как объект?

Старый 29.03.2012, 11:28
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 6  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код в студию, желательно и клиентский и серверный.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

Регистрация: Mar 2012
Сообщений: 13
Серверная часть (движок Yii):

PHP код:
       /**
    *@return string
    *@soap
    */
    
public function xml_load()
    {

          
$post=XMLTable::model()->find(array(
        
'select'=>'xml',
        
'condition'=>'id=:id',
        
'params'=>array('id'=>1),
        ));
  
        return 
$post['xml'];
    } 
Flex:
Код AS3:
<mx:Text id="show_res" x="270" y="383" width="158" height="250">
 
</mx:Text>
.....
 
                         private function xml_load_as(event:ResultEvent):void
			{
 
 
				show_res.data = event.result;    //текст отображается в текстовом окне. Но формат event.result - object, мне нужен XML
				var geo:String = event.result.toString();
 
				var _xml:XML = new XML(geo);  //Мне нужно, чтобы полученный файл был формата XML.  
				//В данном случае преобразование не работает...
                                //(var _xml:XML = new XML(event.result); - тоже не работает

Старый 30.03.2012, 11:05
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 8  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Маловато данных, как осуществляется посылка запроса и подключение, $post['xml'] - точно String, а не array или stdClass?

Добавлено через 30 секунд
И что выдает
Код AS3:
 trace(event.result)
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 30.03.2012, 22:11
Sn0wyDream вне форума Посмотреть профиль Отправить личное сообщение для Sn0wyDream Найти все сообщения от Sn0wyDream
  № 9  
Ответить с цитированием
Sn0wyDream

Регистрация: Mar 2012
Сообщений: 13
Код AS3:
<mx:WebService id="ws" fault="mx.controls.Alert.show(event.fault.faultString)" wsdl="http://127.0.0.1/flex_test/index.php?r=webservice/demo"> 
 
<mx:operation name="xml_load" result="xml_load_as(event)" resultFormat="xml"/> 
 
</mx:WebService>
Если resultFormat - "xml" или "e4x", event.result выглядит таким образом:
Код AS3:
<ns1:xml_loadResponse xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:WebserviceControllerwsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <return xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;
Если resultFormat - "Object":
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<author>Alexey</author>
...
Но Object передать в дальнейший парсер XML нельзя - нужен именно тип XML.
Если вызывать
Код AS3:
var _xml:XML = new XML(Object);
во Flex ничего не происходит, видимо выдается ошибка - код просто дальше не выполняется (функции типа Alert.show("blabla"); не выполняются). Естественно, если передавать _xml парсеру (при любом значении resultFormat), он ничего не парсит.

А как понять, что stdClass или array?
В таблице базы xml хранится в ячейки с типом "blob".

На всякий случай, класс модели таблицы в Yii:
PHP код:

<?php

/**
 * This is the model class for table "XMLTable".
 *
 * The followings are the available columns in table 'XMLTable':
 * @property integer $id
 * @property string $xml
 */
class XMLTable extends CActiveRecord
{
    
/**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return XMLTable the static model class
     */
    
public static function model($className=__CLASS__)
    {
        return 
parent::model($className);
    }

     
/**
     * @var integer 
     * @soap
     */
    
public $id;
    
/**
     * @var string 
     * @soap
     */
    
public $xml;
}


Последний раз редактировалось Sn0wyDream; 30.03.2012 в 22:15.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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