Egret社区

assetsManager 该怎么用

2018-5-2 14:34
305113
1银子
本帖最后由 vpeeee 于 2018-5-2 14:34 编辑

之前一直没管assetsManager, 现在发现小游戏4M的限制后, 想用assetsManager, 但是没找到一篇完整的教程, 于是新建了个项目, 把里面的一些配置抄过来了, 也按"使用 AssetsManager 解决微信小游戏包体积尺寸限制问题" 改了, 出现了两个问题, 发布时资源组默认就一个preload, 然而我的资源组不是这样的, 自己琢磨了下config.wxgame.ts , 按照资源所放的文件夹名称去判断该用哪个资源组名, 不知道对不对, 但是可行. 还有一个问题是 sheet加载, 开始类型一直是json, 后面发现config.ts里面typeSelector里面, sheet类型的文件应该放在sheet的目录, 我于是把sheet文件都移进去了, 类型是对了, 但是加载并不成功, 问题我也知道, 下面三张图可以看出来, 但是不知道怎么解决

QQ图片20180502135826.png
QQ图片20180502135847.png
QQ图片20180502135931.png
分享到 :
0 人收藏

13 个回复

倒序浏览
app小王子  社区管理员 | 2018-5-3 11:02:56
使用 loadConfig 加载多份配置文件,可以把首屏需要的资源放到 4M 的包里,然后把其他的资源放到 cdn 的服务器上。
vpeeee  登堂入室 | 2018-5-3 15:34:04
谢谢, 我就是想实现这个效果, 但是发现不会用AssetsMananager, 尤其是sheet, 它会把图片的名称改掉, 然后配置文件里面用到的图片名称还是没改的, 所有导致找不到图片
haolin.chen  登堂入室 | 2018-5-14 20:55:49
vpeeee 发表于 2018-5-3 15:34
谢谢, 我就是想实现这个效果, 但是发现不会用AssetsMananager, 尤其是sheet, 它会把图片的名称改掉, 然后配 ...

https://github.com/egret-labs/egret-core/issues/259
wssznh  登堂入室 | 2018-5-14 22:00:16
haolin.chen 发表于 2018-5-14 20:55
https://github.com/egret-labs/egret-core/issues/259

这个问题可以通过自定义插件解决,
/**
* 示例自定义插件,您可以查阅 http://developer.egret.com/cn/2d ... dExtensionPluginin/
* 了解如何开发一个自定义插件
*/
export class CustomPlugin implements plugins.Command {
    private contentsStr: string = "";
    constructor() {
    }
    async onFile(file: plugins.File) {
        const extName = file.extname;
        if (extName === ".json") {
            let data = JSON.parse(file.contents.toString());
            if (data.file && data.frames) {
                data.file = data.file = data.file.replace(".", "_");
                file.contents = new Buffer(JSON.stringify(data));
                let subkeys = [];
                for(let key in data.frames){
                    subkeys.push(key);
                }
                file.options = {type:"sheet", subkeys:subkeys.join(",")};
            }
        }
        // if (extName == ".js" && file.extname.indexOf("libs/modules/egret/") && file.extname.indexOf(".min")) {
        //     this.contentsStr += file.contents.toString();
        //     return null;
        // }
        return file;
    }
    async onFinish(commandContext: plugins.CommandContext) {

        // commandContext.createFile("merfile.js", new Buffer(this.contentsStr));
    }
}
haolin.chen  登堂入室 | 2018-5-15 10:17:19 来自手机
wssznh 发表于 2018-5-14 22:00
这个问题可以通过自定义插件解决,
/**
* 示例自定义插件,您可以查阅 http://developer.egret.com/cn/2d ...

确实自定义控件可以解决大部分问题,但是我希望官方给个说法而已,从官方发帖看来这个assetsmanager是很牛逼的,为啥出来的东西缺这缺那的
wssznh  登堂入室 | 2018-5-15 10:31:04
本帖最后由 wssznh 于 2018-5-15 10:34 编辑

这个assetsmanager目前还是个半成品,很多配套的插件官方都没有完善好,所有容易出各种问题,毕竟现在5.1.x版本的引擎还只是beta版本,不稳定是正常的
haolin.chen  登堂入室 | 2018-5-15 11:05:27
wssznh 发表于 2018-5-15 10:31
这个assetsmanager目前还是个半成品,很多配套的插件官方都没有完善好,所有容易出各种问题,毕竟现在5.1.x版 ...

233,感觉这个自定义插件就是用来给开发者们临时填坑用的
Wander  官方团队 | 2018-5-15 11:17:55
wssznh 发表于 2018-5-15 10:31
这个assetsmanager目前还是个半成品,很多配套的插件官方都没有完善好,所有容易出各种问题,毕竟现在5.1.x版 ...

目前稳定版本很快就会出来了!后续我们的重点工作就是完善 assetsmanager 和 自定义插件这一系列的文档
Wander  官方团队 | 2018-5-15 11:18:51
haolin.chen 发表于 2018-5-15 11:05
233,感觉这个自定义插件就是用来给开发者们临时填坑用的

这句话有另一种表达方式就是 “开发者可以根据自己的特定需求进行自由扩展”  - -
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部