`

AS3的一些压缩解压缩类库(AS3 ZIP、AS3 GZIP等等)

 
阅读更多

原文链接:AS3的一些压缩解压缩类库(AS3 ZIP、AS3 GZIP等等)

 

在现在开发的游戏中,由于战斗数据比较大,所以尝试对战斗数据进行压缩,然后输出到客户端flash端再解压。

Google到一篇文章,对照翻译工具翻译一下 :)

在我的一些项目中,经常需要对数据做一些转换操作,所以积累一些很有意思的用于数据压缩/解压缩的第三方类库。

当然ByteArray类本身就带了数据压缩和解压缩的方法,可以用在flash player使用zlib算法和AIR程序使用多种算法。在FLASH跟PHP作为后台的编程中,我后来选择了ByteArray的compress方法来做zlib算法的压缩,用这个方法用的比较顺手,而且很快。

下面是一些第三方的类库地址以及介绍: 

  • AS3 Zip: AS 3 下用来读取和写入zip文件的类库
  • FZip: FZip 是一个用于AS 3 下读取、创建、修改zip压缩包的类库
  • ASZip: AS 3 用于创建zip文件的类库
  • LZMA Encoder: AS3下使用LZMA算法压缩数据的类库.
  • LZMA Decoder: 跟上面类库对应的用于LZMA算法解压缩数据.
  • AsCompress: AS3下 GZIP压缩和解压缩类库,好像需要SDK版本在4.x以上,flash cs3下不可用。
  • Gzip for HTTPService/URLLoader: 给你的 Flex/AIR HTTPService/URLLoader增加gzip支持
  • airxzip: AIR的zip类库

如果你还知道更多的类库或者其他好东东,欢迎告知!

 

翻译自:http://blog.yoz.sk/2011/01/quick-tip-compression-in-flash/

While working on one of my projects where I needed compression for transfered data, I hit some very interesting compression libraries. Also the ByteArray class contains compress method, using zlib algorithm in flash player or multiple algorithms in AIR. At the end I decided to useByteArray.compress() method for encoding vs. PHP gzuncompress for decoding, what works correctly, fast and smooth.

Here is a list of 3rd party compression libraries and other good stuff:

  • AS3 Zip: ActionScript 3 based library for reading and writing zip files
  • FZip: FZip is an Actionscript 3 class library to load, modify and create standard ZIP archives.
  • ASZip: ActionScript 3 library to generate ZIP files
  • LZMA Encoder: AS3 class to compress data using LZMA algorithm.
  • LZMA Decoder: A part of the apparat framework.
  • GZIP: ActionScript GZIP compression library
  • Gzip for HTTPService/URLLoader: Adding Gzip support for Flex/AIR HTTPService/URLLoader
  • airxzip: Zip library for ActionScript3 on AIR

If you know some more, please let me know.

===============================================================================
 
附一个自己平时经常用的类库ZipArchive,以下是主页及帮助文档:

ZipArchive是一个Zip档案处理类,可读写各种zip格式文件。如zip/swc/air/docx/xlsx等。


Features

  • 轻松创建或加载一个zip档案;
  • 多种方式读取和删除zip档案中的文件;
  • 支持中文文件名;
  • 非常容易序列化一个zip档案,如有AIRPHP等的支持下就可以把生成的zip档案保存在本地或服务器上。

Usage

package  
{        
       
import flash.display.*; 
       
import flash.events.*; 
       
import flash.utils.*;    
       
import com.riaidea.utils.zip.*; 
         
         
       
[SWF(width =500, height =400, frameRate =24, backgroundColor =0xFFFFFF)] 
       
publicclassExampleextendsSprite  
       
{                
               
privatevar zip:ZipArchive;              
               
privatevar swc:ZipArchive;              
                 
               
publicfunctionExample()  
               
{ 
                        testZip
(); 
                        testSWC
(); 
               
} 
                 
               
privatefunction testZip():void 
               
{ 
                        zip
=newZipArchive(); 
                        handleEvents
(zip,true); 
                        zip
.load("assets/test.zip"); 
               
} 
                 
               
privatefunction processZip():void 
               
{ 
                       
//显示zip文件的详细文件信息 
                        trace
(zip.toComplexString()); 
                         
                       
//读取zip中的xml文件 
                       
var xmlFile:ZipFile= zip.getFileByName("sample.xml"); 
                       
var xml:XML =new XML(xmlFile.data); 
                        trace
(xml); 
                         
                       
//复制zip中的"girl.jpg""张曼玉.jpg" 
                       
var zmy:ZipFile= zip.getFileByName("girl.jpg"); 
                        zip
.addFileFromBytes("张曼玉.jpg", zmy.data); 
                         
                       
//异步加载并显示zip中的新生成的图片"张曼玉.jpg" 
                        zip
.getAsyncDisplayObject("张曼玉.jpg",  
                       
function(img:DisplayObject):void  
                       
{  
                                addChild
(img); 
                                img
.x =10; 
                                img
.y =10; 
                       
}); 
                         
                       
//删除zip中的文件"girl.jpg" 
                        zip
.removeFileByName("girl.jpg"); 
                         
                       
//异步加载并显示zip中的SWF文件"loading.swf" 
                        zip
.getAsyncDisplayObject("loading.swf",  
                       
function(swf:DisplayObject):void  
                       
{  
                                addChild
(swf); 
                                swf
.x =150; 
                                swf
.y =10; 
                       
}); 
                         
                       
//根据字符串内容创建一个新的txt文件 
                       
var txtContent:String="这是一个测试文本文件"; 
                        zip
.addFileFromString("empty_dir/test.txt", txtContent); 
                         
                       
//显示修改后的zip文件信息 
                        trace
(zip.toComplexString()); 
               
} 
                 
               
privatefunction testSWC():void 
               
{ 
                        swc
=newZipArchive(); 
                        handleEvents
(swc,true); 
                        swc
.load("assets/puremvc.swc"); 
               
} 
                 
               
privatefunction processSWC():void 
               
{ 
                       
//显示swc文件的详细文件信息 
                        trace
(swc.toComplexString()); 
                         
                       
//读取swc文件中的所有类定义 
                       
var catalog:ZipFile= swc.getFileByName("catalog.xml"); 
                       
var catalogXML:XML = XML(catalog.data); 
                        trace
(catalogXML..(catalogXML.namespace())::def); 
               
} 
                 
               
privatefunction handleEvents(zip:ZipArchive, add:Boolean):void 
               
{ 
                       
if(add) 
                       
{ 
                                zip
.addEventListener(ZipEvent.PROGRESS, onProgress); 
                                zip
.addEventListener(ZipEvent.LOADED, onLoaded); 
                                zip
.addEventListener(ZipEvent.INIT, onInit); 
                                zip
.addEventListener(ZipEvent.ERROR, onError); 
                       
}else 
                       
{ 
                                zip
.removeEventListener(ZipEvent.PROGRESS, onProgress); 
                                zip
.removeEventListener(ZipEvent.LOADED, onLoaded); 
                                zip
.removeEventListener(ZipEvent.INIT, onInit); 
                                zip
.removeEventListener(ZipEvent.ERROR, onError); 
                       
} 
               
} 
                 
               
privatefunction onInit(evt:ZipEvent):void  
               
{ 
                        handleEvents
(evt.target asZipArchive,false);                   
                       
switch(evt.target) 
                       
{ 
                               
case zip: processZip();break; 
                               
case swc: processSWC();break; 
                       
} 
               
}                
                 
               
privatefunction onProgress(evt:ZipEvent):void  
               
{ 
                       
//trace(evt.message.bytesLoaded, evt.message.bytesTotal); 
               
} 
                 
               
privatefunction onLoaded(evt:ZipEvent):void  
               
{ 
                       
//trace(evt); 
               
} 
                 
               
privatefunction onError(evt:ZipEvent):void  
               
{ 
                       
//trace(evt); 
               
} 
       
} 
}

 

 

  • zipLib.7z (15 KB)
  • 描述: ZipArchive
  • 下载次数: 3
分享到:
评论

相关推荐

    一个mp3解压缩的C语言类库.zip_MP3 压缩_MP3解压缩_mp3 类_mp3压缩

    本文将深入探讨一个使用C语言编写的MP3解压缩类库,它为开发者提供了便捷的接口来处理MP3文件的解压工作。该类库包含多个源文件,如MP3DEC.C、HUFF.C等,以及相关的头文件,如HUFFMAN.H、MP3DEC.H等。 首先,让我们...

    一个很实用的php zip压缩类库源码文件.zip

    1. 解压缩ZIP:类库可能会提供一个方法来解压ZIP文件到指定的目录。 2. 查看ZIP内容:开发者可以通过类库查看ZIP内的文件和目录列表。 3. 删除和重命名ZIP内的文件:在不解压的情况下,直接对ZIP内的文件进行删除或...

    C#压缩解压缩类库项目SharpZip.zip

    在这个名为"C#压缩解压缩类库项目SharpZip.zip"的压缩包中,我们很可能会找到一个使用SharpZipLib库来实现C#压缩和解压缩功能的示例项目。 首先,让我们详细了解`SharpZipLib`库。这个库由ICsharpCode提供,它是一...

    unity 解压缩文件zip类库

    总之,"unity 解压缩文件zip类库"是一个关键的技术点,通过引入如ICSharpCode.SharpZipLib这样的库,开发者能够在Unity中方便地处理ZIP文件,实现资源的解压缩,这对于游戏更新、数据加载等场景至关重要。...

    AS3类库资源大集合

    AS3 类库资源大集合包含了众多实用的 ActionScript 3(AS3)库,这些库主要服务于 Flash 和 Flex 开发者,提供了丰富的功能,如网络API接口、UI组件、动画效果、数据处理以及游戏开发等。以下是部分核心知识点的详细...

    ZIP压缩/解压缩类库

    ZIP压缩/解压缩类库.根据编译情况选择合适的类库 ZipArchiveXXXX.Lib XXXX每位意义(左起): 第1位: D——Debug R——Release 第2位: U——Unicode 第3位: M——MFC 第4位: D——共享库中使用MFC T...

    AS3中gif类库 ActionScript gif类库 AS3打印gif

    以下将详细探讨AS3中的GIF类库、ActionScript与GIF的关系以及如何在AS3中打印GIF。 首先,AS3的标准库并不直接支持GIF解码和播放。为了在AS3项目中使用GIF,我们需要引入第三方类库。一些流行的AS3 GIF库包括...

    一个很实用的php zip压缩类库源码文件

    这里我们讨论的是一款实用的PHP ZIP压缩类库,它包含两个核心源码文件,旨在帮助PHP Web开发者更高效地进行文件压缩操作。 首先,我们要理解ZIP是一种广泛使用的文件格式,用于将多个文件打包成一个单一的可压缩...

    AS3 mebius类库

    4. **事件处理**:AS3的事件驱动模型是其一大特点,Mebius类库可能包含了一些增强型的事件类和事件监听器,帮助开发者更好地管理和响应用户交互,实现更复杂的应用逻辑。 5. **网络通信**:考虑到AS3在Web应用中的...

    c++压缩文件类库

    Zlib是一个广泛使用的开源压缩库,它提供了多种压缩算法,包括DEFLATE,该算法被广泛应用于如ZIP和PNG等文件格式中。在你提到的资源“c++压缩文件类库”中,我们关注的是Zlib库的版本1.2.3,这个版本在C++ Windows...

    as3 动画类库备份

    标题 "as3 动画类库备份" 指向的是一个使用ActionScript 3(AS3)编写的动画库,这种库通常用于Flash开发,为开发者提供了方便的动画处理功能。AS3是Adobe Flash Professional、Flash Builder等工具支持的编程语言,...

    as3一牛逼类库as3corelib

    as3一牛逼类库as3corelibas3corelibas3corelibas3corelib

    AS3.0 ZIP压缩解压

    在AS3.0中处理ZIP压缩和解压涉及到了对二进制数据的操作以及文件读写,这对于开发Flash应用或游戏尤其重要,因为这些应用通常需要处理大量的资源。 在AS3.0中,没有内置的ZIP库,但可以通过第三方库来实现ZIP的压缩...

    5.java系统类库.zip

    5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5.java系统类库.zip5....

    开源as3基础类库as3isolib

    开源as3基础类库as3isolib as3isolib is a great isometric library for actionscript 3 by Justin Opitz. This is a lower level isometric library that could be used in

    C#批量压缩文件为zip文件类库.rar

    "C#批量压缩文件为zip文件类库.rar"这个压缩包就提供了一个专门用于批量压缩文件到ZIP格式的类库。 在这个压缩包中,我们可以看到两个主要的文件: 1. **FileCompression.cs**:这是一个C#源代码文件,其中包含了...

    as3-parser.jar.zip

    标题中的"as3-parser.jar.zip"表明这是一个包含AS3解析器的Java归档(JAR)文件,它被压缩成ZIP格式以便于下载和分发。AS3全称ActionScript 3,是Adobe Flash Platform中用于创建交互式内容、游戏和动画的编程语言。...

    用AS3操作ZIP文件

    3. ** 创建ZIP文件:** 在AS3中创建ZIP文件,我们需要一个类库,如“AS3版ZIP编解码类”,这个库应包含一个或多个类,如`ZipWriter`,用于写入ZIP文件的各个部分,包括文件数据和文件头。 4. ** 添加文件:** 要将...

Global site tag (gtag.js) - Google Analytics