[LayaAir 2.0]资源压缩成zip后加载的问题

某些资源类似预设文件,我自己把若干个文件压缩成一个zip,下载通过JSZip解压后,如何用Laya.loader再去初始化呢?
let zip = new JSZip();
 
我的需求是这样,比如有个界面,aa.scene,如果我提前通过Laya.loaer 加载了这个aa.scene,Laya.loader里面已经有了缓存,之后再open时候就比较快了,
现在我把若干的界面合并一个zip.然后想把zip解压后,希望能达到上面类似Laya.loader预加载的效果
 
其实就是想实现把合并文件的 .plf压缩后,然后再解压读取
已邀请:

nevercai

赞同来自:

高级黑科技来了:
        // 解压获得文件内容
let zipData = {"res/aaa.scene":{scene:"xxxx"}, "res/bbb.json":{test:[1,2,3,4,5]}};
// 构造数据
let data = {json:{}, text:{}}; // 默认只支持json和text。其他要另外处理。
data.json["res/aaa.scene"] = zipData["res/aaa.scene"];
data.json["res/bbb.json"] = zipData["res/bbb.json"];
// 设置数据
let func = Laya.Loader.prototype["parsePLFData"];
func.call(Laya.Loader, data);
// 要先加载一遍,才能使用。基本底层都是调用的loader,那就不用处理了。
Laya.loader.load("res/aaa.scene", Laya.Handler.create(null, (content)=>{console.log(content)}));
Laya.loader.load("res/bbb.json", Laya.Handler.create(null, (content)=>{console.log(content)}));

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作