教你使用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查看运行结果

  1. package{
  2.         import flash.net.URLRequest;
  3.         import flash.net.URLLoaderDataFormat;
  4.         import flash.events.Event;
  5.         import flash.net.URLLoader;
  6.         import flash.display.Sprite;
  7.         
  8.         public class Test extends Sprite{
  9.                 
  10.                 public var urlLoader:URLLoader=new URLLoader();
  11.                 
  12.                 public function Test(){
  13.                         urlLoader.dataFormat=URLLoaderDataFormat.BINARY;
  14.                         urlLoader.addEventListener(Event.COMPLETE,onLoaded);
  15.                         urlLoader.load(new URLRequest("test.dat"));
  16.                 }
  17.                 
  18.                 private function onLoaded(event:Event):void{
  19.                         trace(LZMA.decode(urlLoader.data));
  20.                 }
  21.         }
  22. }
复制代码

再次强调一下,已经压缩过的文件使用LZMA不会再有效果,请使用原始数据压缩
have fun ~

posted @ 2011-12-24 18:26  rob_2010  阅读(479)  评论(0编辑  收藏  举报