Egret 压缩与解压(jszip)

Posted gamedaybyday

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Egret 压缩与解压(jszip)相关的知识,希望对你有一定的参考价值。

一 jszip是什么

二 为什么要用jszip

三 如果使用zip

 

一 jszip是什么

 jszip 是一个 javascript 库,可直接在浏览器上创建 zip 压缩档。

 

二 为什么要用jszip

当游戏中有大量配置文件(txt或json)需要从服务器上下载时,

可以先将文件压缩成zip包,在Egret中下载后解压使用。

当配置文件只有几个时没什么,但是有50个60个时,我觉得是需要放到zip包里了。

以前在一家上市游戏公司用Egret开发过项目,里面有相当多的配置文件,就是放在一个zip包里下载的。

 

三 如果使用jszip

首先下载jszip第三方库,下载地址,Egret官方在github上放的:https://github.com/egret-labs/egret-game-library

 

将jszip放在项目目录下,放在哪你自选,只要配置中添加路径时正确就行了。

 

然后在Egret中引用第三方库,项目目录下egretProperties.json文件中添加

{
  "native": {
    "path_ignore": []
  },
  "publish": {
    "web": 0,
    "native": 1,
    "path": "bin-release"
  },
  "egret_version": "3.0.6",
  "modules": [
    {
      "name": "egret"
    },
    {
      "name": "game"
    },
    {
      "name": "tween"
    },
    {
      "name": "res"
    },
    {
    "name": "jszip",
    "path": "jszip"
    }
  ]
}

 

 新建一个txt测试文件 a.txt,里面写个“a”

 

把a.txt压缩成一个assets.zip测试包

放在resource/assets文件夹下

 

 Egret中加载这个zip包,然后解压里面的a.txt,并输出里面的内容。

RES.getResByUrl("resource/assets/assets.zip", function(data){
       var zip = new JSZip(data);
       console.log(zip.file("a.txt").asText());  //输出a
},this, RES.ResourceItem.TYPE_BIN);

 

当然,a.txt内是json的话,输出的string可以转成json来使用

var json = JSON.parse( zip.file("a.txt").asText() );

 

以上是关于Egret 压缩与解压(jszip)的主要内容,如果未能解决你的问题,请参考以下文章

Egret之JSZip基础

Egret之JSZip加压

Egret之JSZip解析图片

怎么加载zip脚本

Egret之异步JSZIP操作

jszip.js远程读取一个zip文件