共计 1929 个字符,预计需要花费 5 分钟才能阅读完成。
function createTween (params) {
new TWEEN.Tween(params.object)
.to(params.to, params.duration)
.onComplete(() => onComplete())
.onUpdate(params.onUpdate)
.easing(params.easing)
.start()}
function onComplete() {console.log("onComplete")
}
var tweenParams = {
targetTweenDuration: 2500,
posTweenDuration: 2500,
upTweenDuration: 2500,
targetTweenEasing: {
id: TWEEN.Easing.Quadratic.Out,
name: 'Linear'
},
posTweenEasing: {
id: TWEEN.Easing.Quadratic.Out,
name: 'Linear'
},
upTweenEasing: {
id: TWEEN.Easing.Quadratic.Out,
name: 'Linear'
},
configManager: null,
showLoader: true
}
function tweenCameraTo (state, immediate) {
immediate = false;
const targetEnd = new THREE.Vector3(state.viewport.target[0],
state.viewport.target[1],
state.viewport.target[2])
const posEnd = new THREE.Vector3(state.viewport.eye[0],
state.viewport.eye[1],
state.viewport.eye[2])
const upEnd = new THREE.Vector3(state.viewport.up[0],
state.viewport.up[1],
state.viewport.up[2])
const nav = viewer.navigation
const target = new THREE.Vector3().copy(nav.getTarget())
const pos = new THREE.Vector3().copy(nav.getPosition())
const up = new THREE.Vector3().copy(nav.getCameraUpVector())
const targetTween = createTween({
easing: tweenParams.targetTweenEasing.id,
onUpdate: (v) => {nav.setTarget(v)
},
duration: immediate ? 0 : tweenParams.targetTweenDuration,
object: target,
to: targetEnd
})
const posTween = this.createTween({
easing: tweenParams.posTweenEasing.id,
onUpdate: (v) => {nav.setPosition(v)
},
duration: immediate ? 0 :tweenParams.posTweenDuration,
object: pos,
to: posEnd
})
const upTween = this.createTween({
easing: tweenParams.upTweenEasing.id,
onUpdate: (v) => {nav.setCameraUpVector(v)
},
duration: immediate ? 0 : tweenParams.upTweenDuration,
object: up,
to: upEnd
})
Promise.all([
targetTween,
posTween,
upTween]).then(() => {
animate = false
console.log(11111)
})
}
// function animate(time) {// requestAnimationFrame(animate);
// TWEEN.update(time);
// console.log(1)
// }
// requestAnimationFrame(animate);
function runAnimation (start) {if (start || animate) {
this.animId = window.requestAnimationFrame(runAnimation)
Tween.update()}
}
正文完
发表至: javascript
2019-04-29