资讯专栏INFORMATION COLUMN

(Laya项目)JS/TS语言zip压缩解压缩三方库及其使用

SQC / 1868人阅读

摘要:语言的项目里,要用对压缩过的文件解压缩。压缩二进制数据解压二进制数据好了。中可以直接保存对象到文件,但不行,所以构造成成通用的格式,压缩后保存。保存的配置文件叫,以的形式加载,然后再把字符串转成即可。

TS语言的Laya项目里,要用typescript对压缩过的文件解压缩。文件是AS3写的工具导出的。
怎么办,上github找一个库,地址如下
https://github.com/imaya/zlib.js

下载找到的zlib.js或zlib.min.js文件
自己编写zlib.min.d.ts文件,代码如下

export namespace Zlib {
    class Inflate {
        constructor(data:any);
        decompress(): any;
     }
     
    class Deflate { 
        constructor(data:any);
        compress():any;
    }
}

把zlib.min.js和zlib.min.d.ts文件放到项目里
这种工具性质的代码,最好写成上下文无关的静态类方法。

export class ByteUtil
{
     * 压缩 二进制数据
     * @param bytes 
     * @returns Array. or Uint8Array
     */
    public static compress(bytes:Laya.Byte):any
    {
        var byte8 = new Uint8Array(bytes.buffer);
        var defate = new Zlib.Deflate(byte8);
        var compressed = defate.compress();
        return compressed;
    }

    /**
     * 解压 二进制数据
     * @param compressed  Array. or Uint8Array
     */
    public static uncompress(compressed: any): Laya.Byte
    {
        var inflate = new Zlib.Inflate(compressed);
        var plain = inflate.decompress();

        var plainByte: Laya.Byte = new Laya.Byte(plain);
        return plainByte;
    }
}

好了。AS3中可以直接保存Object对象到文件,但js、ts不行,所以构造成成通用的JSON格式,压缩后保存。
保存的配置文件叫joeng.data,以Laya.Loader.BUFFER的形式加载,

        let configData:Laya.Byte = new Laya.Byte();
        configData.writeArrayBuffer(Laya.Loader.getRes("res/pre/joeng.data"));
        let configUint8Array = new Uint8Array(configData.buffer);
        configData = ByteUtil.uncompress(configUint8Array);
        configData.pos = 0;
        let configStr:string = configData.getUTFBytes();

然后再把字符串configStr转成object即可。

本文参考自https://blog.csdn.net/sjt2238...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103558.html

相关文章

  • 资深程序员:Python中你不知道的那些小工具

    摘要:中还有大量的小工具,让你的工作更有效率。快速共享服务器是内置的服务器,使用端口和协议共享。安装解压缩常用操作是著名的包管理工具,在开发中必不可少。安装示例最后介绍的示一个强大的工具。 ...

    RdouTyping 评论0 收藏0
  • 使用Google Closure Compiler进行Js代码压缩

    摘要:是什么是一个使下载和运行更快的工具。它解析您的,分析它,删除死代码并重写并最小化剩下的内容。它还检查语法,变量引用和类型,并警告常见的陷阱。其他参数这里使用默认运行后就可以看到生成了压缩的文件了。其他的代码压缩工具 1.Google Closure Compiler是什么? The Closure Compiler is a tool for making JavaScript dow...

    young.li 评论0 收藏0
  • 使用Gradle构建Java项目

    摘要:要从头开始,请继续使用构建。文件夹应包含项目运行单元测试的报告。由于该项目尚未进行任何单元测试,因此该报告无效。使用构建项目是启动构建的首选方式。现在可用于构建项目。概要恭喜您现在已经创建了一个简单而有效的构建文件,用于构建项目。 本指南将引导您使用Gradle构建一个简单的Java项目。 你要构建什么 您将创建一个简单的应用程序,然后使用Gradle构建它。 你需要什么 大约15分...

    xiaokai 评论0 收藏0

发表评论

0条评论

SQC

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<