Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Расшифровать gzip (http://www.flasher.ru/forum/showthread.php?t=153413)

Deimos747 02.04.2011 16:17

Расшифровать gzip
 
Не подскажите, аналог функции gzuncompress() в php. Для as3?

NikolyA 02.04.2011 16:39

а чем ByteArray не подходит?

Deimos747 02.04.2011 16:43

На сервере используется Zlib, и соответственно при попытке преобразования в ByteArray вылетает ошибка

NikolyA 02.04.2011 16:51

так может ошибка у тебя, потому как должно работать, попробуй проверить все еще раз

Deimos747 02.04.2011 17:01

Делаю вот так:
Код:

var loaderOpen:URLLoader=new URLLoader();
loaderOpen.dataFormat = URLLoaderDataFormat.TEXT;
loaderOpen.addEventListener(Event.COMPLETE, loadXMLOpen);
loaderOpen.load(new URLRequest(url));//url - путь к файлу

Код:

private function loadXMLOpen(e:Event):void 
                { 
                        var x:ByteArray;
                        try
                        { 
                                x = ByteArray (e.target.data);
                                xml=new XML(x.uncompress());
                                parseXMLOpen();
                        } 
                        catch(e:TypeError)
                        { 
                                trace( "Could not parse text into XML" ); 
                                trace( e.message ); 
                        }
                }

в результате
Код:

Error #1034: Ошибка типа Coercion: невозможно преобразовать "xœíšÛ‚0 †ï}
Þ`ãàábé+ø hbÄÄ(oo0ñpAt+ôÚ¾,¥ý»,¨<>ÁÌóT¡¯gð¥ƨ#‰>\òclí:~“IŒá½v+‰O [5.ò֛}–”æa ”EcÔfښèÄEÃ6PÂ]\›·E/²Óà+ז#:3™9-&Z…s*©FÎÃ~ÂKÛٝû‚Ì$UVVŽ«÷O•¦Cë…6e¦“S™̤/؃[
§ðêµ8ZÏö{9Äô—¼$¶df~còXsŒ        9ïóŒ֌2
ÃGæ£Ì m¦{›*ûLܕEÖK•ÏF0ǪÂÌQ“}Ÿ_V/â©mÔ §ÖÎN¯SÑv'»™̤Ïl[K‰þß#ƃ;`ý" в flash.utils.ByteArray.


wvxvw 02.04.2011 17:25

Так у вас данные уже в строке... Попробуйте убрать вот это: loaderOpen.dataFormat = URLLoaderDataFormat.TEXT;
Просто если вы их загрузите как строку, то не все будет возможно прочитать, ну и уж точно не таким способом. Как минимум прийдется переводить из UTF-8 обратно в байты.

Deimos747 02.04.2011 17:36

wvxvw спасибо, вы оказались правы) Нужно было сделать следующие правки
Код:

loaderOpen.dataFormat = URLLoaderDataFormat.BINARY;
Код:

x = ByteArray (e.target.data);
x.uncompress();
xml=new XML(x);


NikolyA 02.04.2011 19:10

говорил же что ошибка у тебя, а ты не верил


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

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