版本 1.2.0
在浏览器控制台中运行如下代码:
let a = new cc.Color(0,0,0,0);
cc.tween(a)
.to(1, new cc.Color(255,255,255,255),{
onUpdate: v=>{ console.log(v.r, v.g, v.b, v.a) }
})
.start();
如图:
版本 1.2.0
在浏览器控制台中运行如下代码:
let a = new cc.Color(0,0,0,0);
cc.tween(a)
.to(1, new cc.Color(255,255,255,255),{
onUpdate: v=>{ console.log(v.r, v.g, v.b, v.a) }
})
.start();
如图:
写错了,to(1, { r:255, g:255, b:255 }
to(1, new cc.Vec4(1,1,1,1) 也行,就是Color不行
有什么曲线救国的方法吗 除了自己写timer做插值 之前的tween tendto 都干掉了 就留一个bug 是在劝退吗
cc.Color 比较特殊,它将 rgba 编码到了一个 number 上,目前还没想到有什么好办法来处理,可以参考下帖
camera不知道 直接使用tween修改color的rgb无效
请问针对这个问题引擎有计划修改吗?
比如 Color 改为编码到 r、g、b、a 上,或者 Tween 针对 Color 特殊处理一下?
毕竟 Color 的 Tween 还是挺常用的。
let sprite = this.node.getComponent(Sprite) as Sprite;
sprite.color = new Color(255, 255, 255, 255);
let color = new Color(255, 255, 255, 0);
let curColor = new Color();
let tween = new Tween(sprite);
tween
.to(1, {}, {
onUpdate: (target, ratio: number) => {
sprite.color = Color.lerp(curColor, Color.WHITE, color, ratio);
}
})
.call(() => {
this.node.active = false;
})
.start();
我说这个color我上次用的时候,也很奇怪呢。但是我没注意这个东西,直接就在update里自己算差值了。