Pixi.js: BitmapText .textWidth仅在渲染后正确吗?

创建于 2016-12-13  ·  4评论  ·  资料来源: pixijs/pixi.js

设置BitmapText的.text属性后,.textWidth在渲染之后才正确。 在进行重新定位计算时,必须使用requestAnimationFrame()等待。 这是预期的行为吗?

💾 v4.x (Legacy) 📢 Accepting PRs 🕷 Bug

所有4条评论

错,这是目前的预期行为,因为这就是代码的作用,但是我们可以做得更好;)

您会看到,出于性能原因,只有在渲染文本后才会对其进行更新。 想象一下,您有一个计数器,可以快速计数。 您不希望在文本类中重新创建每个数字,因为只有在渲染该数字时,您才需要使用它来显示正确的内容。

例如,普通的Text类确保当您尝试获取其宽度时,它会在渲染循环之外更新文本,以确保返回的值准确且最新。 BitmapText不会这样做(但应该这样做)。

创建修复程序后,可以在查询.textWidth之前在对象上调用.updateText()。 这应该为您提供准确的测量结果,而无需等待皇家空军

解决方法是将当前.textWidth设置为私有._textWidth,创建一个名为.textWidth的只读getter,该方法将在返回._textWidth之前调用.validate();

对于.width(和高度)的吸气剂,我相信它应该在返回宽度之前调用.updateTransform()

.validate是我一直在寻找的东西。 谢谢 :)。 如果有机会,我将在今晚晚些时候实施+ pr。

该线程已被自动锁定,因为它关闭后没有任何近期活动。 请为相关的错误打开一个新的问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

SebastienFPRousseau picture SebastienFPRousseau  ·  3评论

gaccob picture gaccob  ·  3评论

distinctdan picture distinctdan  ·  3评论

neciszhang picture neciszhang  ·  3评论

madroneropaulo picture madroneropaulo  ·  3评论