教你使用LZMA压缩数据文件,并用AS3解码
使用LZMA压缩数据文件,并用AS3解码
前面介绍了使用ZSWF压缩SWF文件,http://bbs.9ria.com/thread-103658-1-1.html
而lzma.exe是一个命令行工具,可以使用LZMA算法压缩文件,不再多做介绍
鉴于有人不会使用它,这里演示一下使用lzma.exe压缩文本,并使用LZMA.as解码 lzma.rar (39.62 KB)
首先将压缩包解压到一个目录下,比如c:/lzma
然后开始菜单->运行,输入cmd,回车,输入cd c:/lzma 回车
或者直接用里面的startcmd.bat启动cmd,自动切换到同目录
然后输入命令 lzma e test.txt test.dat,回车
这里在同目录下会生成使用lzma压缩过的文件test.dat
解码很简单,直接调用LZMA.decode传入ByteArray就可以了
编译Test.as查看运行结果
- package{
- import flash.net.URLRequest;
- import flash.net.URLLoaderDataFormat;
- import flash.events.Event;
- import flash.net.URLLoader;
- import flash.display.Sprite;
- public class Test extends Sprite{
- public var urlLoader:URLLoader=new URLLoader();
- public function Test(){
- urlLoader.dataFormat=URLLoaderDataFormat.BINARY;
- urlLoader.addEventListener(Event.COMPLETE,onLoaded);
- urlLoader.load(new URLRequest("test.dat"));
- }
- private function onLoaded(event:Event):void{
- trace(LZMA.decode(urlLoader.data));
- }
- }
- }
再次强调一下,已经压缩过的文件使用LZMA不会再有效果,请使用原始数据压缩
have fun ~