我正在使用Tween.js和TypeScript来改变Three.js立方体的x和y坐标。我创建了以下tween来改变"class = FallingItem"项的x位置。
this.movementArcData.horzTween = new TWEEN.Tween(this.movementArcData.pos.x)
.to(this.movementArcData.newPos.x, this.movementArcData.movementTime * 1000)
.onUpdate(this.updateXPos)
.onComplete(this.horzTweenComplete);
"this.movementArcData"是一个包含以下内容的对象:
- horzTween - 缓动本身
pos.x - 项目的原始位置
movementTime - 完成运动需要的时间,为2000毫秒
updateXPos - a FallingItem对象的成员函数,其代码如下:
updateXPos(){ this.mesh.position.x = this.movementArcData.pos.x; console.log("update x: " + this.movementArcData.pos.x); }
horzTweenComplete - 一个FallingItem对象的成员函数,其代码如下:
horzTweenComplete(){
this.movementArcData.horzTweenComplete = true;
}
updateXPos和horzTweenComplete回调函数均未被触发。
我在渲染循环中调用了TWEEN.update,如下所示:
TWEEN.update(dt);
自从tween的onComplete事件没有触发时,TWEEN.update不断被调用。我错过了什么导致tween无法正常工作?