Cocos Creator v2.4.3-rc.7 测试帖(正式版已发)

XMLHttpRequest 这个在微信小游戏上,能把timeout参数加上吗?现在设置 timeout,是没效果的,看了一下代码:
send(data = ‘’) {
if (this.readyState !== XMLHttpRequest.OPENED) {
throw new Error(“Failed to execute ‘send’ on ‘XMLHttpRequest’: The object’s state must be OPENED.”)
} else {
let myRequestTask = wx.request({
data,
url: _url.get(this),
method: _method.get(this),
header: _requestHeader.get(this),
dataType: ‘other’,…
里面并没有给request的参数加上timeout

当调用后,cc.director.pause(), widget layout没有正常更新。

bundle的load和preload能否加上options可以传,例如我在远端的一个bundle里有大厅和战斗的部分资源,进大厅我会去preload大厅的远端资源,然后进战斗的时候进行preload战斗的远端资源,我希望战斗的远端资源在preload的时候,优先级能调高,优先从远端下载下来。看源码,bundle的preload里调用Asset Manager的preload是传了一个默认的options过去的。

感谢反馈,可以暂时先在 game.json 里配置。我们后续补上

要不你直接用 cc.assetManager.preloadAny ? 我们不想在 preload 这个比较简单的方法里面再增加参数了,现在已经有四个参数,其他开发者看到这个参数可能会懵

我们会在3.0优化下

@EndEvil 请问有本地zip bundle功能吗?以前我再Laya上撸过zip包,可以把20M的发布目录(大量json)压倒4M内。

如果用zip就要用到远程,就有点变态了。明明可以不加服务器的。

最新版本使用自定义字体的时候,Cache Mode 选择为char的时候,动态改变(运行时改变)label的内容,label的结点width不会变化、选择为none的时候没有问题。

@EndEvil 2.4.3-rc.1 以及2.4.2,使用ttf字体,label的overflow设为RESIZE_HEIGHT时,label所在节点的高度没有刷新,看了下源码,没有对_layoutInfo->height重新赋值,希望引擎组解决下。

这个问题,应该不是bug吧,应该是引擎组对label的性能优化吧。我是手动调用label 的 _forceUpdateRenderData 方法解决的

label所在节点高度的刷新是在下一帧,这个没问题,我说的是延迟或者调用_forceUpdateRenderData后获取节点高度。网页预览没有这个问题,iOS真机上,使用系统字体也没有问题,只有在iOS上使用ttf字体,且label的使用RESIZE_HEIGHT模式下,节点高度等于行高,这个应该是因为原生上对ttf渲染的优化造成的。

一开始时是考虑本地zip的,但是这个功能在部分平台支持得不好,所以就放弃了,另外我不太清楚小游戏对于包体是怎么计算的,理论上他们也会默认压缩一次,应该使用压缩后的大小来计算才比较合理,所以本地放压缩包应该效果不大才对。不过这里你可以把压缩包放本地,然后运行时用 unzip 解压到缓存目录,然后用 cc.assetBundle.loadBundle 加载缓存目录的地址就行,也能正常加载

原生上么?

能否在具体描述一下吗?或者给一下 demo,正常 pause 后应该是不会更新的

目前只在模拟器上做过测试

ok,我们发现问题了,我们确认一下

感谢,我们同事会跟踪一下, https://github.com/cocos-creator/cocos2d-x-lite/issues/2726

感谢大佬:rose:

我们在2.4.0也出现这个问题,直接在layout里面放一个用ttf的lable,label的overflow设为RESIZE_HEIGHT时,label的Cache Mode 选择为char,在onload改变label内容,layout不会自动拉伸。然后我们都被迫换成richtext了,但是richtext的drawcall会比label高,因为我们字体是单色的。望修复

原生上使用 freetype 来渲染 ttf 和 char 模式,可能有点问题,你可以先在2.4.3上先禁用 cc.macro.ENABLE_NATIVE_TTF_RENDERER,可以先绕过这个问题