如何知道 fitToView() 已经完全完成
How to know that fitToView() has finished completely
我想知道 fitToView() 是否完全完成。
如果没有 setTimeout(),某些程序在 fitToView() 之后无法运行。
例如,以下代码不起作用。
const dbid = [1141]
this.viewer.select(dbid)
this.viewer.fitToView(dbid, viewer.model)
zoom() //This will not work
//code from:
function zoom (){
var nav = viewer.navigation
var pos = nav.getPosition()
var target = nav.getTarget()
var viewdir = new THREE.Vector3()
viewdir.subVectors (pos, target).normalize()
// zooms out by 100 along the view direction
viewdir.multiplyScalar (1000)
pos.add(viewdir)
nav.setPosition(pos)
}
以下代码运行良好。
this.viewer.fitToView(dbid, viewer.model)
setTimeout(function(){
zoom() //This will work fine
}, 2000)
但是,我尽量不使用setTimeout
有没有办法知道fitToView()完全结束了?
如果您使用查看器的 3.2.1 版新事件 Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED
,它将在以下转换完成时触发:
回家过渡
焦点/适合视图过渡
恢复状态转换
命名视图过渡
任何其他相机转换
// 挂钩事件
viewer.addEventListener(Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED, function(){
console.log('camera is no longer moving');
});
// 触发将移动相机并触发事件的动作
viewer.fitToView();
您可以在此处查看有关查看器版本更改的更多信息。
https://developer.autodesk.com/en/docs/viewer/v2/overview/changelog/3.2.1/
我想知道 fitToView() 是否完全完成。
如果没有 setTimeout(),某些程序在 fitToView() 之后无法运行。
例如,以下代码不起作用。
const dbid = [1141]
this.viewer.select(dbid)
this.viewer.fitToView(dbid, viewer.model)
zoom() //This will not work
//code from:
function zoom (){
var nav = viewer.navigation
var pos = nav.getPosition()
var target = nav.getTarget()
var viewdir = new THREE.Vector3()
viewdir.subVectors (pos, target).normalize()
// zooms out by 100 along the view direction
viewdir.multiplyScalar (1000)
pos.add(viewdir)
nav.setPosition(pos)
}
以下代码运行良好。
this.viewer.fitToView(dbid, viewer.model)
setTimeout(function(){
zoom() //This will work fine
}, 2000)
但是,我尽量不使用setTimeout
有没有办法知道fitToView()完全结束了?
如果您使用查看器的 3.2.1 版新事件 Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED
,它将在以下转换完成时触发:
回家过渡 焦点/适合视图过渡 恢复状态转换 命名视图过渡 任何其他相机转换
// 挂钩事件
viewer.addEventListener(Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED, function(){
console.log('camera is no longer moving');
});
// 触发将移动相机并触发事件的动作
viewer.fitToView();
您可以在此处查看有关查看器版本更改的更多信息。 https://developer.autodesk.com/en/docs/viewer/v2/overview/changelog/3.2.1/