小程序
小游戏
企业微信
微信支付
扫描小程序码分享
基础库v2.32.1发布之后,有部分游戏反馈图片加载变慢很多,经排查是触发了安卓底层setTimeout的时序问题,该问题需要基础库发版本修复,由于涉及到底层改动,灰度节奏会相对慢,遇到问题的游戏建议手动修复下。
目前反馈的游戏主要是白鹭引擎的游戏,游戏方可尝试将资源加载回调的setTimeout去掉来修复,参照下图:
非白鹭引擎遇到类似问题可以排查是不是有不必要的setTimeout逻辑。
如有问题,可以联系我们的小游戏助手一同排查。
5 个评论
加粗
标红
插入代码
插入链接
插入图片
上传视频
不知道是不是版本问题。5.3.7版本,小程序的项目里,有个egret.wxgame.js的,如果没有在game.js中调用
if (window.RES && RES.processor) { require('./library/image.js'); require('./library/text.js'); require('./library/sound.js'); require('./library/binary.js'); }
那么,走的是egret.wxgame.js里面重新写的WebImageLoader,这里面也有个settimeout,和官方所记录的差不多,但修改了没效果。。加载还是慢,然后添加上述代码,图片加载使用image.js了,这里的主要代码是
function loadImage(imageURL, scale9grid) { // console.warn("loadImage",imageURL) return new Promise((resolve, reject) => { const image = wx.createImage(); var startLoadTime = Date.now() image.onload = () => { let passTime = Date.now() - startLoadTime if (passTime > 1000) { console.warn("loadImage", passTime, imageURL) } const bitmapdata = new egret.BitmapData(image); const texture = new egret.Texture(); texture._setBitmapData(bitmapdata); if (scale9grid) { texture["scale9Grid"] = scale9grid; } if (systemInfo == null) { systemInfo = wx.getSystemInfoSync(); } if (systemInfo.platform == "ios") { setTimeout(() => { resolve(texture); }, 0); } else { resolve(texture); } } image.onerror = (e) => { // console.error(e); const error = new RES.ResourceManagerError(1001, imageURL); reject(error); } image.src = imageURL; }) }
发现,资源加载慢的时候,这里的耗时会比较长,android上集中在1800ms-5000ms,开发工具是1200ms-1500ms,也是比较慢了,表现显得特别卡顿
ps(基础库2.32.3)
没辙了。。。。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
cocos有解决方案不
感谢官方大大,已解决
记录一下。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
不知道是不是版本问题。5.3.7版本,小程序的项目里,有个egret.wxgame.js的,如果没有在game.js中调用
if (window.RES && RES.processor) { require('./library/image.js'); require('./library/text.js'); require('./library/sound.js'); require('./library/binary.js'); }
那么,走的是egret.wxgame.js里面重新写的WebImageLoader,这里面也有个settimeout,和官方所记录的差不多,但修改了没效果。。加载还是慢,然后添加上述代码,图片加载使用image.js了,这里的主要代码是
function loadImage(imageURL, scale9grid) { // console.warn("loadImage",imageURL) return new Promise((resolve, reject) => { const image = wx.createImage(); var startLoadTime = Date.now() image.onload = () => { let passTime = Date.now() - startLoadTime if (passTime > 1000) { console.warn("loadImage", passTime, imageURL) } const bitmapdata = new egret.BitmapData(image); const texture = new egret.Texture(); texture._setBitmapData(bitmapdata); if (scale9grid) { texture["scale9Grid"] = scale9grid; } if (systemInfo == null) { systemInfo = wx.getSystemInfoSync(); } if (systemInfo.platform == "ios") { setTimeout(() => { resolve(texture); }, 0); } else { resolve(texture); } } image.onerror = (e) => { // console.error(e); const error = new RES.ResourceManagerError(1001, imageURL); reject(error); } image.src = imageURL; }) }
发现,资源加载慢的时候,这里的耗时会比较长,android上集中在1800ms-5000ms,开发工具是1200ms-1500ms,也是比较慢了,表现显得特别卡顿
ps(基础库2.32.3)
没辙了。。。。
cocos有解决方案不
感谢官方大大,已解决
记录一下。