3.14 canvas下 labelttf 的 BUG

问题现象:
在canvas模式下
当一个 labelttf添加在一个 父节点中(sprite或者node)
当父节点设置透明度之后(setOpacity)
然后点击任意位置,会导致labelttf的位置归零,

代码分析:
问题出在cocos2dx 3.11升级到3.12
\cocos2d-html5\cocos2d\core\labelttf\CCLabelTTFCanvasRenderCmd.js 文件中
170行 node.setContentSize(nodeW, nodeH);
3.11中是node.setContentSize(locSize);

3.12引入var pixelRatio = cc.view.getDevicePixelRatio();//可能是为了解决某些BUG吧
但是跑了这个之后就有问题了,

该问题3.14中依然存在
@panda @wangzhe
能否关注下

没有人关心cocos的底层实现原理吗

LabelTTF用不起,太贵了,字体文件太大了,给本来就很慢的加载速度雪上加霜。

1赞

字体文件一个是用默认的就不需要额外的负担了

另一个点阵字体肯定比图片小,比图片快啊
(你觉得字体文件大肯定是没有把多余的文字删除掉,所以大)
只是做艺术字比较麻烦而已

触发这个BUG的原因是 labelttf所在的上层layer中
存在触摸事件,并且onTouchBegan中存在getBoundingBoxToWorld,

具体的实现过程很复杂,就不详细说明了

最终我的方案是避免在那个地方使用getBoundingBoxToWorld
我的问题应该解决了 但是cocos的bug没有解决