简单说说用C#压缩资源以及FLASH中使用解压缩后的资源

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的出炉吧.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值