Laya使用zip压缩包

JSZip

游戏中有大量配置文件时,经常为了减少配置文件的加载时间需要将配置文件打包成zip文件,然后只需加载一次zip文件,使用JSZip库将配置文件从zip文件中解压读取出来即可。
JSZip官网:JSZip
官方提供的JSZip中只有JS文件,我们使用TS开发时为了方便使用需要d.ts文件。这里我提供一个我自己使用dtsmake
转换后的3.1版本的JSzip库和jszip.d.ts文件的下载地址

引用JSZip

  • 将js文件复制到项目的bin/libs文件夹下。


    JSZip_0.png
  • 将d.ts文件复制到项目的libs文件夹下。


    JSZip_1.png
  • 在index.js文件中引入js库

loadLib('libs/jszip.js')

读取zip包中文本内容

        //先以二进制方式加载zip包
        Laya.loader.load([{ type: Laya.Loader.BUFFER, url: 'res/testFileZip.zip' }], Laya.Handler.create(this, () => {
            const jsZip = new JSZip();
            //获取ZIP包内容传入JSZip中解析
            jsZip.loadAsync(Laya.loader.getRes('res/testFileZip.zip')).then((data: any) => {
                //以text的方式读取testFile.txt内容
                data.file('testFile.txt').async('text').then((content:string) =>{
                    console.log(content);
                })
            })
        }))

读取zip包中图片的base64信息

        //先以二进制方式加载zip包
        Laya.loader.load([{ type: Laya.Loader.BUFFER, url: 'res/testFileZip.zip' }], Laya.Handler.create(this, () => {
            const jsZip = new JSZip();
            //获取ZIP包内容传入JSZip中解析
            jsZip.loadAsync(Laya.loader.getRes('res/testFileZip.zip')).then((data: any) => {
                //以base64的方式读取skillIcon.png并显示在屏幕上
                data.file('skillIcon.png').async('base64').then((content:string) =>{
                    const testPng = new Laya.Image();
                    testPng.skin = 'data:image/png;base64,' + content
                    //testPng.loadImage();
                    Laya.stage.addChild(testPng);
                    console.log(content);
                })
            })
        }))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,573评论 0 17
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,453评论 0 9
  • WinRAR - 最新版本的更新 版本 5.50 1. WinRAR 和命令行 RAR 默认使用 RAR ...
    王舒璇阅读 2,417评论 0 2
  • 你想做到最好,没有人会理解你,只有你自己最清楚,你为什么会有强烈的欲望想要做到最好,因为最了解你的始终只有自己。 ...
    西风_66cf阅读 103评论 0 0
  • 文|烽火长歌 景色秀美心情愉悦,不过这时候并没有太多时间来细致描写,等我回来之后再好好的写这篇游记吧。 01 早晨...
    烽火长歌阅读 180评论 0 0