3.3.1bug 使用tween对sprite组件的color进行缓动

组件会以闪烁的方式渐变到指定颜色

1赞

这个有办法解决吗

3.3.2也有这个问题,不过我只是有透明度的需求,就用UIOpacity代替了


可以看看这篇文章~

image
我这样试了,可行

在 3.8.5 中修复:https://github.com/cocos/cocos-engine/pull/16977

这个问题的原因是,Color 是采用一个 number (用到 32位)_val 来存储 r,g,b,a,读写 r,g,b,a 的时候其实是通过位操作进行转换为 0~255 单字节的值。
而在做缓动动画的时候,由于是直接对 _val 这个 number 当浮点处理,这导致浮点差值后转换为 r,g,b,a 的时候是个错误的值。