Форум 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=110375)

anuta5000 01.04.2008 19:52

Как распарсить набор данных?
 
Проблема следующая, с сервера приходит объект/набор данных в смешанном формате, сначала идут всякие заголовки и xml-кусок - потом звуковой файлик в wav-формате. нужно "вырезать" все лищнее, т е xml и прочее, и оставить только звуковой кусок. как это сделать? есть ли такая возможность? пример возвращаемого сервером набора данных ниже:

Content-Type: text/xml; charset=utf-8
Content-Transfer-Encoding: binary
Content-ID: <SOAP-ENV:Envelope>

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP бла-бла-бла><SOAP-ENV:Body><ns:Data><xop:Include href="cid:id1"/></ns:Data></SOAP-ENV:Body></SOAP-ENV:Envelope>

--==LNapH7lDHUSWE6I3PKEIWOzJjzfxl9O+z5nJOzXdmqzJgBf0X3uxhZLUT3XD==

Content-Type: image/jpeg
Content-Transfer-Encoding: binary
Content-ID: <id1>
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ и т.д.

ulik 03.04.2008 13:20

а вы не можете после запрос к БД, скажем, формировать xml и высылать клиенту?
Код:

<?xml version="1.0" encoding="utf-8"?>
<data>
<line type='text'>Some text data</line>
<line type='image'>../test.jpg</line>
<line type='audio'>../test.mp3</line>
</data>

Проблема может возникнуть, если вы хотите передать, скажем бинарную картинку + 2 переменые, ибо мануал гласит:
Код:

public var dataFormat:String = "text"
Language Version :  ActionScript 3.0
Player Version :  Flash Player 9
Controls whether the downloaded data is received as text (URLLoaderDataFormat.TEXT), raw binary data (URLLoaderDataFormat.BINARY), or URL-encoded variables (URLLoaderDataFormat.VARIABLES).
If the value of the dataFormat property is URLLoaderDataFormat.TEXT, the received data is a string containing the text of the loaded file.
If the value of the dataFormat property is URLLoaderDataFormat.BINARY, the received data is a ByteArray object containing the raw binary data.
If the value of the dataFormat property is URLLoaderDataFormat.VARIABLES, the received data is a URLVariables object containing the URL-encoded variables.

Т.е. смешанный тип, не получится... Хотя, возможно я и ошибаюсь...
Просто я не сталкивался с подобными проблемами. Я обычно делаю один из двух вариантов:
1. Есть картинка на сервере, а БД записана ссылка (тогда передаем xml или переменные. т.е. VARIABLES или TEXT)
2. Грузим в swf картинку, делаем копию BitmapDataой, далее кодируем BitmapData в byteArray, при помощи com.adobe.images.PNGEncoder (доступен на сайте адоба для скачки), для примера, и записываем в БД. Когда нужно, вытягиваем из БД байтики (используя BINARY).

А вот как смешать - не знаю. Не пробовал.
Возможно, __etc знает...

anuta5000 03.04.2008 17:49

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

wvxvw 03.04.2008 18:10

Ну даж нинаю, а что если попробовать загрузить все URLStream"ом, найти нужный хидер, вырезать следующие за ним байты и потом loadBytes? Вот ток со звуком не уверен, что такое получится... Но картинки можно попробовать

etc 03.04.2008 18:39

String не может содержать бинарные данные без нарушения их целостности.

anuta5000 03.04.2008 19:08

я подозревала, что со String так дела обстоят...
то есть по сути хороших вариантов нет?


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

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