Egret社区

关于exml动态加载的问题

2019-5-11 18:56
2622
10银子
开发环境下,将default.thm.json文件中autoGenerateExmlsList属性改为false,将某一exml文件的配置删除,在Component中构造函数中增加EXML.load方法,回调后动态设置Component的skinname,这样修改能实现exml的动态加载,避免提前加载导致的内存过高,但是,再发布后这种方式就不好用了,已经将所有的exml根据default.thm.json中的配置生成了js文件,必须保证所有exml文件都在default.thm.json中才能保证load的时候不报错,也就是说必须在启动的时候把所有exml都加载到内存中,是不是也就是说并不能去动态加载啊,根本就不能做到按需求加载?比如说一个游戏,新号上来明明90级开放的功能都没开放,但是这个exml也必须得加载?

最佳答案

查看完整内容

将exml当做普通文本去加载,比如把它拖到default.res.json中,然后使用RES.getResAsync(key,cb)去异步加载,加载回调用Exml.parse(text);然后再设置Component的skinname
分享到 :
0 人收藏

2 个回复

倒序浏览
落幕夜未央  圆转纯熟 | 2019-5-11 18:56:04
将exml当做普通文本去加载,比如把它拖到default.res.json中,然后使用RES.getResAsync(key,cb)去异步加载,加载回调用Exml.parse(text);然后再设置Component的skinname
tiante  登堂入室 | 2019-5-14 14:49:07
落幕夜未央 发表于 2019-5-12 12:01
将exml当做普通文本去加载,比如把它拖到default.res.json中,然后使用RES.getResAsync(key,cb)去异步加载 ...

感谢耐心解答,我现在用的是getresbyurl,作为文本文件去加载,然后在用exml.parse转换成皮肤类赋值给skiname的,谢谢谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部