引擎版本3.0.6

教程目录
一 为什么要用jszip
二 如何使用jszip
    2.1 下载jszip库
    2.2 导入jszip库
    2.3 加载和解压zip代码
三 Demo源码下载

一 为什么要用jszip
在游戏中有大量配置文件时,为了减少加载次数和传输量,将文件打包成zip,在egret中加载并解压获取数据。

在中大型游戏,不可避免有大量的游戏配置文件。

为了减少加载次数和传输量,我们事先将这些文件压缩打包成zip, 然后在egret中加载,并使用jszip库解压获取其中的数据。

二 如何使用jszip

2.1 下载jszip库
官方gitbug下载地址:https://github.com/egret-labs/egret-game-library

2.2 导入jszip库
将下载的jszip文件夹放到合适位置,我这里直接丢在了项目目录下

打开项目目录下egretProperties.json,将jszip添加到配置文件中

[AppleScript] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
"modules": [
    {
      "name": "egret"
    },
    {
      "name": "game"
    },
    {
      "name": "tween"
    },
    {
      "name": "res"
    },
        {
                "name": "jszip",
                "path": "jszip"
        }
  ]

添加完成后,记得编译一次引擎。

2.3  加载和解压zip代码

[AppleScript] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
//加载zip
RES.getResByUrl("resource/assets/assets.zip", function(data){
              //解压数据
              var zip = new JSZip(data);
               
              //读取技能数据
              var skillJson = JSON.parse(zip.file("skill.json").asText());
              console.log(skillJson);
               
},this, RES.ResourceItem.TYPE_BIN);

更新一个解压图片的:
参考的教程: https://segmentfault.com/a/1190000002669262

[AppleScript] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
//读取图片
 var buffer = zip.file("fire.png").asArrayBuffer();
var base64 = this.arrayBufferToBase64(buffer);
base64 = "data:image/png;base64," + base64;
               
var img:eui.Image = new eui.Image();
img.source = base64;
this.addChild(img);
[AppleScript] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
private arrayBufferToBase64( buffer ) { 
    var binary = ''; 
    var bytes = new Uint8Array( buffer )
    var len = bytes.byteLength; 
    for (var i = 0; i < len; i++) { 
         binary += String.fromCharCode( bytes[ i ] )
    } 
    return window.btoa( binary )
}

Demo源码下载(coding git)

【咸鱼教程】JsZip压缩与解压教程的更多相关文章

  1. Linux 学习笔记 5 文件的下载、压缩、解压、初步认识yum

    写在前面 上节我们通过简单的几组命令,已经完全的实现了文件的移动.删除.更名.以及复制,我们最常用的基本玩法,本节将带着大家学习压缩.解压的相关步骤. Linux 学习笔记 4 创建.复制.移动.文件 ...

  2. Zip 压缩、解压技术在 HTML5 浏览器中的应用

    JSZip 是一款可以创建.读取.修改 .zip 文件的 javaScript 工具.在 web 应用中,免不了需要从 web 服务器中获取资源,如果可以将所有的资源都合并到一个 .zip 文件中,这 ...

  3. Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压

    zip格式 压缩: zip -r [目标文件名].zip [原文件/目录名] 解压: unzip [原文件名].zip 注:-r参数代表递归 tar格式(该格式仅仅打包,不压缩) 打包:tar -cv ...

  4. Linux压缩与解压常用命令

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  5. Asp.net中文件的压缩与解压

    这里笔者为大家介绍在asp.net中使用文件的压缩与解压.在asp.net中使用压缩给大家带来的好处是显而易见的,首先是减小了服务器端文件存储的空间,其次下载时候下载的是压缩文件想必也会有效果吧,特别 ...

  6. Java实现文件压缩与解压

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...

  7. linux下压缩与解压(zip、unzip、tar)详解

    linux下压缩与解压(zip.unzip.tar)详解 2012-05-09 13:58:39| 分类: linux | 标签:linux zip unzip tar linux命令详解 |举报|字 ...

  8. HttpClient与APS.NET Web API:请求内容的压缩与解压

    首先说明一下,这里的压缩与解压不是通常所说的http compression——那是响应内容在服务端压缩.在客户端解压,而这里是请求内容在客户端压缩.在服务端解压. 对于响应内容的压缩,一般Web服务 ...

  9. linux下文件压缩与解压操作

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可 ...

随机推荐

  1. iOS 多线程简单使用的具体解释

    主线程 一个iOS程序执行后.默认会开启1条线程,称为"主线程"或"UI线程"(刷新UI界面最好在主线程中做.在子线程中可能会出现莫名其妙的BUG) 主线程的作 ...

  2. tablediff工具实用

    1. tablediff 是什么? tablediff 实用工具用于比较两个非收敛的表中的数据,它对于排除复制拓扑中的非收敛故障非常有用. 2. tablediff 用哪些用法? 1) . 在充当复制 ...

  3. Webkit内核探究【2】——Webkit CSS实现

    注:[转载请注明文章来源.保持原样] 出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660364.html 作者:李嘉昱 CSS在Webkit中 ...

  4. Google语音识别API 使用方法

    官方位置:https://cloud.google.com/speech/

  5. 使用jstl+el表达式遇到的几个问题

    1.使用jstl访问Map<Integer,String>中的内容时总取不到? el表达式的一个bug,在解析数字的时候,会自动将数字转换成Long类型. 我的解决办法是,Map的key改 ...

  6. linux下主流的三种远程技术

    远程登录操作对于租用服务器的用户来说都不陌生.特别是租用国外服务器的用户来说,更是家常便饭.通过远程登录操作,即使我们人在深圳,也能无差别的操作远在美国的服务器.而对于linux系统下的服务器,目前主 ...

  7. 单例模式__new__

    单例模式,使用__new__ __new__是构造函数, __init__是初始化方法,先调用了__new__返回了实例,__init__给这个实例初始化绑定一些属性. class Singleton ...

  8. mysql的in查询分析

    群里山楂大仙和电台大神探讨到mysql的in查询的问题,问题如下: student表有class_id的索引,但是只查询一个的时候用索引,查两个就不用索引了 这是很奇怪的现象,我试了一下也是这样,真是 ...

  9. ios开发之--sizeToFit的用法

    sizeToFit :即当前视图便捷和便捷大小变化(自动根据文本大小改变自身的宽度) 代码如下: - (void)sizeToFitDemo { UILabel * label = [[UILabel ...

  10. iOS开发--打印NSRange,CGRect等结构体

    使用对应的转换NSStringFromCGPoint   NSStringFromCGSize   NSStringFromCGRect  NSStringFromCGAffineTransform  ...