Cocos Creator 加载zip文件(将json表压缩成zip)

Cocos Creator Bundle压缩类型深度解析:从原理到实战选型指南 在游戏开发与Web前端性能优化领域,资源加载效率是影响用户体验的关键因素。其核心原理在于平衡网络请求次数与单次传输体积,以降低加载延迟。通过合并文件减少HTTP请求,或利用压缩算法减小数据体积,是两种主流优化技术。这些技术对于实现快速启动、流畅运行及高效热更新具有重要价值,尤其适用于游戏分包、首屏优化等场景。本文聚焦于Cocos Creator引擎中的Asset Bundle,深入剖析其提供的合并依赖、无压缩、合并所有JSON、小游戏分包及Zip五种压缩类型。结合实战中遇到的Bundle加载与热更新问题,详 阅读详情
const { ccclass, property } = cc._decorator;

@ccclass
export default class Helloworld extends cc.Component {

    m_cfgTableMap:any = {};

    start() {

        this.m_cfgTableMap = {};

        this.loadZip();


    }

    loadZip() {
        let self = this;
        let url = cc.url.raw('resources/configs.zip');
        cc.loader.load({ url: url, type: "binary" }, (err: Error, zipData: ArrayBuffer) => {
            //2.1.3在安卓平台下会出现load不到资源的情况
            if (err) {
                let httpUrl = `资源服务地址${url}`;
                console.log('loadConfigZip httpUrl: ', httpUrl);
                let oReq = new XMLHttpRequest();
                oReq.open("GET", httpUrl, true);
                oReq.responseType = "arraybuffer";

                oReq.onload = function (oEvent) {
                    let arrayBuffer = oReq.response; // 注意:不是oReq.responseText
                    if (arrayBuffer) {
                        console.log('LoadConfig::unzip 0');
                        self.unzip(arrayBuffer);
                    }
                };
                oReq.send(null);
            }
            else {
                console.log("unzip unzip");
                this.unzip(zipData);
            }
        });
    }

    unzip(zipData) {
        let self = this;
        let newZip = new JSZip(); // 因为将jszip导入为插件,所以可以全局直接访问
        newZip.loadAsync(zipData).then(zip=>{
            // console.log(zip);
            let fileList = zip.files;
            for(let filename in fileList){
                zip.file(filename).async('string').then(data=>{
                    let json = JSON.parse(data);
                    console.log(JSON.stringify(json));
                    self.m_cfgTableMap[filename] = json;
                });
            }

        });
    }

}

参考链接:https://forum.cocos.org/t/jszip-zip/92462

Cocos Creator ZIP解压与资源动态加载全方案 ZIP文件解压是游戏热更新、多语言包加载和用户资源上传等场景的基础能力,其本质是将压缩字节流还原为可被引擎识别的结构化资源。核心原理在于解析ZIP目录树、标准化路径格式、按扩展名注册对应Asset类型,并注入引擎资源缓存系统。技术价值体现在跨版本兼容(v2.4.12~v3.8)、内存可控(流式/分片解压)、错误可溯(CRC校验、编码容错)及无缝集成资源管线。典型应用场景包括运行时热更、PSD导出资源包加载、加密配置包解析等。本文基于JSZip深度适配Cocos Creator资源系统,解决路径映射、资源注册 阅读详情

相关推荐

Cocos Creator 中 Zip 文件处理全指南:从解压到 EOCD 报错排查

在游戏开发和日常软件交付中,zip 压缩包是最常见的资源封装格式之一,其内部通过中央目录与 EOCD 记录维护文件索引,任何数据缺失都可能导致解压失败。理解 zip 的原理与工程化处理方式,是保障资源加载稳定性的关键。围绕 zip 下载、解压、加密及跨平台兼容等问题,开发者需要掌握从网络请求到二进制解析的完整链路,并熟悉 JSZip 等纯前端解压库的应用。该技术广泛服务于远程资源更新、热更包管理、美术资产交付等场景,尤其在 Cocos Creator 这类多平台引擎中,规范的文件处理能大幅减少运行时异常。本

weixin_29001683的博客 303

cocos creator 3.2加载与读取zip包

安装JSZip插件 下载地址:https://stuk.github.io/jszip/ 新建目录data,并添加两个文件: a.json Dungeon.png 压缩data文件,并修改后缀名为".bin", 将data.bin放入项目resources中 加载data.bin文件 private loadZip(url: string): Promise<any> { return new Promise((resolve, reject) => { .

niccgz 1903

Cocos Creator ZIP资源热加载全平台实战指南

ZIP文件作为轻量级资源打包格式,在游戏开发中广泛用于动态加载地图、皮肤、配置等数据。其核心原理是基于DEFLATE压缩算法与中央目录结构,通过二进制流解析实现跨平台解包。技术价值在于降低首包体积、支持热更新与按需加载,显著提升H5、小程序及原生App的资源管理灵活性。典型应用场景包括微信小游戏资源热更、iOS/Android端关卡动态注入、PC浏览器中JSON+PNG混合资源加载。本文聚焦Cocos Creator 3.8+环境下jszip与pako协同解压、cc.assetManager手动注册Text

weixin_27960253的博客 303

cocos creator 加载zip里的图片

let path = ""; // 在zip里的文件名称 let zipData = "";// zip文件 letjsZip=require('jszip.min'); letnewZip=newJSZip(); newZip.loadAsync(zipData).then((zip)=>{ let zipFile=zip; if(!zipFile|| zipFile.file(path)){ return; } zipFi...

erweimac的博客 1444

Cocos Creator中ZIP解压与热更新资源加载:JSZip选型到实战避坑

在游戏客户端开发中,ZIP压缩包是批量传输图片、音频等资源的主流载体,其解压效率和安全性直接影响热更新体验。Cocos Creator虽然默认不支持直接解压ZIP,但借助JSZip这一纯JavaScript库,可在浏览器、原生平台和小游戏环境实现跨平台解压,从而将远程资源打包下载、本地解压后接入引擎资源管线。从技术原理看,JSZip以Promise方式按需读取压缩条目,能有效降低内存峰值,适合10MB量级的资源包。应用场景覆盖热更新、资源分包与预下载功能。本文深入讲解Creator中集成JSZip的完整流程

weixin_30368981的博客 206

Cocos Creator ZIP资源热加载:从解压到transform的完整闭环

ZIP是一种通用归档格式,本身不具备可执行或可加载语义;在游戏引擎中,其价值在于作为热更新、模块分包和动态资源下发的轻量容器。Cocos Creator资源系统默认不支持ZIP,因其加载流程严格依赖文件扩展名与预注册Importer的匹配机制,而ZIP需经解压→二进制提取→内存转换(cc.assetManager.transform)三步才能生成标准cc.Texture2D、cc.JsonAsset等实例。该方案绕过编辑器资源扫描与构建约束,纯JS实现ZIP内资源按需解析与生命周期管理,兼容v3.8+,适用

weixin_29534421的博客 322

Cocos游戏开发|使用zip压缩减少web请求,加速资源加载

点击上方码不了一点+关注和★ 星标1 引言Cocos Creator 3.8 有提供 zip 格式的 bundle,但不支持 web 平台。今天就给大家分享一下如何使用 Zip 加速 Cocos Creator 在 Web 平台的资源加载。前段时间使用 Cocos Creator 3.8 做一个云展厅项目,要求在 Web 平台上线(微信 H5&浏览器)。这个云展厅项目使用 gltf 模型,...

Cocos的博客 2300

Cocos Creator ZIP动态加载:Web与原生三端统一解压方案

ZIP动态加载是游戏热更新与资源分包的核心能力,其本质是将压缩二进制流安全转换为引擎可识别的运行时资源对象。该过程需穿透JS运行时限制、跨平台文件I/O差异及Cocos Creator的UUID资源寻址体系。关键技术点包括:ArrayBuffer与Blob的正确流转、jsb.ZipUtils与JSZip的双轨协同、cc.JsonAsset与cc.SpriteFrame的运行时依赖注入,以及中文路径、BOM字符、内存复用等高频兼容性问题。本文聚焦Cocos Creator 3.x实战场景,提供可直接集成的Zi

weixin_27943395的博客 199

Creator3D:JSZip_压缩

前言 之前在使用Cocos Creator的时候介绍了一下JSZip的用法,当时写的不是很详细。同时也遗留了一些问题。现在开始用Creator3D了,验证了一下是否还可以用,答案是必须的,下边详细的介绍一下。 正文 1.包体大小的重要性(为啥要压缩) 在游戏开发中,尤其是小游戏平台,平台提供给游戏的包体大小非常有限,大多都在4M左右,而引擎的的代码大概就已经1M左右了,留给游戏本省开发的空间那就更少了可怜了,只能想办法对资源下手,包括图片压缩,音效压缩等等。接下来我就以json的压缩为例说一下, 只说压缩,

carlos13207的博客 675

Cocos Creator 3.x 动态 ZIP 资源加载与 Bundle 注册实战

ZIP 文件解压是跨平台游戏热更的基础能力,其本质是将压缩字节流(ArrayBuffer)按规范解析为结构化文件,并注入引擎资源系统。在 Cocos Creator 3.x 中,单纯使用 JSZip 解压仅完成第一步,关键在于如何将内存中的 PNG、JSON 等二进制数据转化为引擎可识别的 cc.Asset 实例,并通过 cc.assetManager.registerBundle 构建运行时虚拟资源包。该机制绕过传统 resources.addSearchPath 的路径限制,支持 Web/Android

weixin_29474431的博客 253

Cocos Creator ZIP解压原理与热更实践

ZIP是一种基于字节布局的归档格式,其核心在于中央目录定位与Deflate流解码。理解ZIP文件结构(如EOCD签名、本地文件头偏移、Raw Deflate封装)是实现高效运行时解压的前提。在游戏开发中,ZIP常被用于资源热更新,但浏览器原生不支持直接加载,需结合DataView字节解析、fflate流式解压及cc.assetManager资源管线集成。本文聚焦Cocos Creator环境下的ZIP处理机制,涵盖ArrayBuffer字节解析、路径归一化、无CRC解压策略与内存预分配等关键技术点,助力构建

weixin_33519829的博客 84

Cocos Creator 下载.png或者.zip到WritablePath并加载资源

1、文件下载函数 function downloadBinary(item, callback) { var url = item.url; var xhr = cc.loader.getXMLHttpRequest(), errInfo = "Load binary data failed: " + url; xhr.open("GET", url, true); xhr.responseType = item.type; xhr.onload = functi

SharkMarine的专栏 1743

Cocos Creator高效处理zip文件:资源更新与解压全攻略

游戏客户端开发中,资源更新与动态加载始终是绕不开的工程问题。zip作为一种高效的文件打包与传输格式,能够显著减少网络请求和生产环境安装包体积。在Cocos Creator的实际项目里,开发者常借助JSZip等纯JS库完成下载、解压与资源使用流程,并针对微信小游戏、Web和原生平台做差异化适配。本文从zip处理的概念与选型出发,系统梳理了ArrayBuffer读取、Texture2D生成、按需解压、文件落盘与版本校验等关键环节,并结合真实踩坑案例,旨在帮助开发者构建稳定可靠的资源热更新链路。

weixin_29007243的博客 281

Colyseus SDK 的 Cocos Creator 3 扩展构建与 Cocos Store 发布流程指南

Colyseus 作为面向 JavaScript/TypeScript 的多人在线游戏框架,其官方 SDK 不仅以 npm 包形式分发,还提供了面向 Cocos Creator 3 引擎的扩展(`cocos-creator-3-extension/`),帮助 Cocos 开发者直接在编辑器中接入 Colyseus 客户端能力。本指南以 [packages/sdk/README.md](https:

gitblog_00537的博客 171

cocos creator zip 文件处理

用于cocos creator js zip 文件处理,放入项目中就可以测试,需要适当修改,放入项目中会有报错。

基于Cocos Creator框架的游戏开发项目.zip

基于Cocos Creator框架的游戏开发项目 项目简介 本项目是一个基于Cocos Creator框架的游戏开发项目,主要用于开发和发布跨平台的游戏应用。项目涵盖了从游戏应用的启动、生命周期管理、代码扫描、代码评审、文档编写到成员协作等多个方面,确保游戏开发过程的高效和规范。 项目的主要特性和功能 1. 游戏应用启动与生命周期管理通过AppDelegate.cpp文件管理游戏的启动和生命周期,确保游戏在不同平台上的稳定运行。 2. JavaScript模块注册通过jsbmoduleregister.cpp文件注册所有JavaScript模块,确保游戏引擎能够正确加载和使用这些模块。 3. Android平台JNI初始化通过main.cpp文件初始化Cocos Creator游戏在Android平台上的JNI代码,确保游戏在Android设备上的正常运行。

Creator3D:入门一定要会的几种资源加载

前言 今天菜鸟整理了一些Creator3D最常见的资源加载方面的东西和大家分享一下,希望对大家有所帮助, 正文 菜鸟今天写的主要是项目中常见的动态加载图片显示和json读取。 在Creator3D中进行动态加载和Cocos Creator中一样,首先需要确保动态加载的资源应该存放在根目录assets 下的resources文件夹中,当然resources这个文件夹本身是不存在的,需要大家自己手动去创建。 1. 加载Json文件 首先咱们来加载本地resources下的test.json文件

carlos13207的博客 1416

UART全功能测试指南:环路/DMA/RS485/硬件流控实战

UART(通用异步收发器)是嵌入式系统中最基础的串行通信接口,其核心原理基于起始位、数据位、校验位与停止位的异步帧结构,依赖精确的波特率时钟同步与采样重建机制。在工业与物联网场景中,UART不仅需保障基本通信可靠性,更需支持DMA卸载、RS485半双工自动方向控制、RTS/CTS硬件流控等进阶能力,以提升实时性、抗干扰性与系统资源效率。典型应用涵盖调试日志输出、传感器数据采集、Modbus RTU总线通信及固件空中升级。本指南聚焦UART外设测试实践,覆盖环路自检、DMA吞吐验证、RS485时序对齐、硬件流

weixin_42599908的博客 133

Cocos Creator JSZip压缩

版本:2.4.2 参考: Egret 压缩插件 cocos论坛:用jszip解压zip文件 GitHub:JsZip cocos论坛:jszip入坑教程-新手指南 Demo下载地址:zipDemo jszip的实际项目应用 游戏中有大量配置的情况下,文件会变得非常大,所以有些游戏会采用zip包压缩解压 例如如下游戏,将游戏配置config.json压缩成zip包,加载后进行解...

gamedaybyday 1955

RK3588+TRL8367s 四网口千兆交换机配置与优化实战

本文详细介绍了基于RK3588高性能SoC与TRL8367s千兆交换芯片构建四网口交换机的完整实战流程。内容涵盖硬件连接、设备树配置、内核驱动加载、性能优化及常见问题排查,重点解析了RGMII时序调试、DSA架构配置等关键步骤,为嵌入式网络设备开发提供实用指南。

weixin_29266647的博客 672

hcaptcha无感验证码逆向实战:从接口分析到环境补全

本文详细解析了hcaptcha无感验证码的逆向实战过程。通过分析核心接口与加密逻辑,重点介绍了采用环境补全策略来模拟真实浏览器环境,从而绕过验证码检测。文章提供了从接口抓包、剖析hsw.js加密核心到使用Node.js搭建模拟环境的完整步骤,为自动化操作提供了一种稳健的解决方案。

weixin_29324401的博客 1151
上一篇: Lua实现md5加密
下一篇: git下载
大头爱学习
博客等级 码龄7年 14粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值