tween怎么写让其中途改变终点

一个node对象aa,开始时:
tween(aa)
.to(5,{position:new Vec3(0,0)})
.call(()=>{console.log(‘我到了位置1’)})
.start()
然后在2秒后,需要改变aa的终点为(100,100),我就再加个tween
tween(aa)
.to(5,{position:new Vec3(100,100)})
.call(()=>{console.log(‘我到了位置2’)})
.start()
问题是:
(1)改变位置后,我不想运行第一个call,只运行最新的call,即’我到了位置2’.结果是两个都运行了.
(2)总共花的时间变成了7秒,而我需要不管改变位置几次,总共还是5秒
各位大佬,有没有简单点的方法啊,求助

(逻辑如下,具体自己再调调)
// 记录开始运动时间
let _time = new Data().getTime();
// 开始朝目标努力
tween(aa)
.to(5,{position:new Vec3(0,0)})
.call(()=>{console.log(‘我到了位置1’)})
.start()

// 中途找到新方向,停止当前目标,朝新方向进发(如果aa还在运动的话,实现下列逻辑)
if (发现新目标) {
let _residueTime = (new Data().getTime()-_time)/1000;
// 停止运动
tween.stopAllByTarget(aa);
// 开始新目标运动
tween(aa)
.to(5-_residueTime, {position:new Vec3(100,100)})
.call(()=>{console.log(‘我到了位置2’)})
.start()
}

1赞

感谢大佬,这是一个巧妙的办法!!