http://hi.baidu.com/wudiliujie/blog/item/134a0634c51dcdabd0a2d3af.html
AS3中的BYTEARRAY类有COMPRESS及UNCOMPRESS方法,采用的是ZLIB的压缩算法.
如果你希望压缩你的ASSETS,然后再在加载后解压缩,可以看一下本文.也许会有一定的帮助.
首先这个工程分成两个阶段.
1.使用C#程序制作压缩工具.用于压缩各种资源文件.
2.使用FLASH加载并使用资源文件.
这里我们以一个名为helloworld的文本文件为目标文件.然后主要就第二阶段做一下说明.
准备工作:
这里我们不必要对ZLIB有什么过多了解.网上有比较多的资源可以直接使用.这里我使用的是componentace.com里的ZLIB组件,你可以点此下载.
下载后打开压缩包后,你可以在BIN目录里找到一个DLL文件,同时,你也可以直接使用包里边的DEMO实例.因为那些DEMO已经足够实现你想要的效果,及压缩文件.我们就直接使用那个DEMO把HELLOWORLD.TXT压缩成HELLOWORLD_COM.TXT
现在第二阶段,使用如下的代码:
var ul:URLLoader=new URLLoader()
ul.dataFormat=URLLoaderDataFormat.BINARY;
ul.load(new URLRequest("C:\\HELLOWORLD_COM.TXT"))
ul.addEventListener(Event.COMPLETE,dodo)
function dodo(evt)
{
ul.data.uncompress();
trace(ul.data)
}
很简单就完成了.
如果换成其它文件呢,比如一个图片.helloworld.jpg那处理的方式就要变化一下.
var ul:URLLoader=new URLLoader()
ul.dataFormat=URLLoaderDataFormat.BINARY;
ul.load(new URLRequest("C:\\HELLOWORLD_COM.TXT"))
ul.addEventListener(Event.COMPLETE,dodo)
function dodo(evt)
{
ul.data.uncompress();
var pic:Loader=new Loader();
pic.loadBytes(ul.data);
addChild(pic);
}
可惜目前SOUND类还没有LOADBYTES的方法,不然声音也可以这样处理.不过CS4里会支持这一方法.所以,就请期待CS4的出炉吧.