3.8 颜色变换的问题

之前的版本也有这个问题,就是比如我字体是白色的,我用这个方式修改颜色,我期望的是从白色慢慢变成红色,实际运行效果会一闪一闪的到红色,不知道这个表现是否是官方的预期呀。

tween(this.txtInfo)
.to(3, { color: color(255, 0, 0, 255) })
.start()

有没有2dx时候类似tintTo的方法 :joy:,要是没只能自己封装了= =

1赞

@jare 麻烦出来解答下哈

现在好像没有这样的

是的,我看之前也有人提过这个问题 :rofl:官方也不回答下,这个是专门这样设计的还是bug

我猜是设计如此

目前 tween color 貌似有bug ,可以先用动画编辑器/update 自己实现。。

因为color是一个对象,基础实现并不知道color应该怎么变化属性
你需要自己定义progress 文档
比如2.x可以这么定义
progress: (start, end, current, t) => {
return cc.color(
start.r + (end.r - start.r) * t,
start.g + (end.g - start.g) * t,
start.b + (end.b - start.b) * t,
);
}

这个解释不对吧,position也是一个对象,erluer也是一个对象。

是不是4.0还是一样的表现,对于这个问题好像就没见官方回复过,可能不值得一提吧 :rofl:

修复了:https://github.com/cocos/cocos-engine/pull/16090

2赞

修复的这么快不会是隔壁给到了压力吧 :joy:

这个算特殊处理么?直接添加了color这样的具体对象。 :joy:

修啥了啊,现在照样闪啊

因为在tween中,Color是一串数字,这就导致你想让Color从黑色变成白色,即0,0,0变成255,255,255,他会从0开始加到16777215。在我的测试中,发现Color是FFFFFFFF,八位十六进制组成的,官方的Tween这方面做的不是很好,我感觉,应该直接传入对象,而不是数字。

1赞

commit不是合并在3.8.2吗?你有手动合并吗?
看代码是修复了,毕竟都把color做为特例来操作的

是合并在3.8.2吗?我这还是会闪