2.0以上动态获取 node.width 问题

2.0 以上 代码已经改变 label 的长度。好像这一帧 不能及时获取到最新的 label 的宽度。这是怎么回事?2.0 的BUG 吗?

1赞

2.0 获取 node 的 宽度 是有 延迟?还是引擎 丛异步处理了?

有大佬或者 官方 解答一下 这是什么原因吗?
在线等

顶一下

不能及时获取到label宽度很不好,比如要动态调整背景图的大小,那么采用下一帧获取的话就会出现闪烁一下。

可以手动刷新,具体函数我忘了,你找找看·····

设置字符串后,在这样处理一下。
this.label._updateRenderData();

 这样处理 也不行啊。还是不能及时获取到 改变后label 的 宽度

对 得闪一下 很不友好

https://forum.cocos.com/t/label/65851/5?u=huanxinyin

1赞

解决了 少传了 参数 ture
完美
感谢大佬

请问node该如何解决?我想让node也动态修改width

2.2.0版本,这个方法去掉了吗?

是的……现在有两个类似的方法,我用_forceUpdateRenderData测试了下是可行的。

_lazyUpdateRenderData () {
    this.setVertsDirty();
    this.markForUpdateRenderData(true);
},

_forceUpdateRenderData () {
    this.setVertsDirty();
    this._resetAssembler();
    this._applyFontTexture(true);
    this.markForUpdateRenderData(true);
},

参考我们工作室的博客:https://xmanyou.com/cocos-creator-label-dynamic-size/

你好,我用2.2.2版本,没有this.label._updateRenderData();这个函数呢

API名字改了,你更新下
_forceUpdateRenderData

谢谢大佬,我后面自己找到了,下次我会看完下面的评论再提问,不好意思哈,辛苦您了