Для распаковки zip-файлов вы можете использовать AS3Commons Zip (ранее известный как FZip). Он работает без требования контрольной суммы Adler32, упомянутого в предыдущем ответе.
Вот пример того, как извлечь все файлы в zip-архив. Приведенная ниже функция вызывается, когда объект URLLoader
скачает zip-файл и отправит событие Event.COMPLETE
:
import org.as3commons.zip.Zip;
import org.as3commons.zip.ZipFile;
private function _onZipDownloaded(e:Event):void {
var ba:ByteArray = ByteArray(e.target.data);
var zip:Zip = new Zip();
zip.loadBytes(ba);
for(var i:uint = 0; i < zip.getFileCount(); i++) {
var zipFile:ZipFile = zip.getFileAt(i);
var extracted:File = directory.resolvePath(zipFile.filename);
var fs:FileStream = new FileStream();
fs.open(extracted, FileMode.WRITE);
fs.writeBytes(zipFile.content);
fs.close();
}
}
Очевидно, что в приведенный выше код следует добавить проверку ошибок, но вы поняли ...