关于tween缓动过程中回调

  • Creator 版本:2.4.2

  • 目标平台: 模拟器

  • 问题描述:请问一个问题,就是我知道缓动完成是有回调的,但是缓动过程中的回调官方有提供方法么?就是缓动属性每发生一次变化就调用一次。

对一个自定义属性做tween,这个自定义属性的setter方法里你可以做任何事

https://docs.cocos.com/creator/manual/zh/scripting/tween.html?h=自定义%20progress

自定义 progress
相对于 easing,自定义 progress 函数可以更自由的控制缓动的过程。

// 对所有属性自定义 progress
cc.tween().to(1, { scale: 2, rotation: 90 }, {
progress: (start, end, current, ratio) => {
return start + (end - start) * ratio;
}
})

// 对单个属性自定义 progress
cc.tween().to(1, {
scale: 2,
position: {
value: cc.v3(),
progress: (start, end, current, t) => {
// 注意,传入的属性为 cc.Vec3,所以需要使用 Vec3.lerp 进行插值计算
return start.lerp(end, t, current);
}
}
})

你可以自己在节点的update判断属性变没变化。