[]3.x 视网膜画布下,对文本组件从scale=0缓动到1后导致文本模糊

简单的Laya.tween.from()方法,将对象从scale0缓动到1
然后文字就模糊了,示例中有对比
已邀请:

layabox

赞同来自:

您遇到的文本在缓动缩放过程的模糊问题,我们不能通过底层的改变来解决,需要您从项目层的使用上来处理一下。
 
这是因为在动画过程中,对象的缩放值在不断变化,要知道,文本的每一次变化就要涉及到文本重绘,所以,要保障每次的文本高清绘制,底层要生成大量的与缩放值对应的文字图片放入大图集。这样会导致大量的显存占用,对性能的也是损耗是非常大的。
 
要解决这个问题,我们建议的方式是,开发者在动画开始前将文字的cacheAs属性设置为'bitmap'。这个'bitmap'的属性可以将文字的bitmap缓存下来,避免在动画播放过程中反复重新生成文字图像,减少显存的消耗,提高性能。然后在动画播放完成后,再将其设置回"none",
 
代码如下:
(this.CityBox2.getChildAt(0).getChildByName("Text2") as Laya.Text).cacheAs = "bitmap";
Laya.Tween.from(this.CityBox2, { scaleX: 0, scaleY: 0 }, 300, null, Laya.Handler.create(this, () => {
(this.CityBox2.getChildAt(0).getChildByName("Text2") as Laya.Text).cacheAs = 'none';
}));

 

小高

赞同来自:

此问题已复现,排查中,后续有结果会这里回复您。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作