Показать сообщение отдельно
Старый 30.07.2007, 00:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Опытным путем было установлено, что сжимать в php нужно с уровнем 9 и во Flash пропустить первые три байта полученного bytearray (позже выяснилось, что это не нужно, это просто три байта UTF-8 BOM затесались).

Код:
<?php
$str = gzcompress('it is a good day to die',  9);
echo $str;
?>
Код:
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest('http://php/zlib/?test='+Math.random());
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(request);
var completeHandler:Function = function(event:Event):void {
	var ba:ByteArray = event.target.data;
	var ab:ByteArray = new ByteArray();
	ab.writeMultiByte('it is a good day to die','x-ansi');
	ab.compress();
	trace(ab,ab.length, ab[3].toString(16));
	trace(ba,ba.length, ba[3].toString(16));
	ba.uncompress();
	trace(ba);
}
loader.addEventListener(Event.COMPLETE, completeHandler);
Не уверен, что сие есть правильное решение, но переваривает строки довольно длинные без особых проблем.


Последний раз редактировалось etc; 30.07.2007 в 13:54.