Autodesk Forge Viewer的多个实例

时间:2018-10-29 09:35:00

标签: javascript three.js autodesk-forge autodesk-viewer

我试图在我的页面上运行多个Autodesk Forge Viewer(v6.2)实例,但隐藏在选项卡中。

当用户切换选项卡时,它将隐藏并显示带有已加载模型的查看器。

虽然我可以使用此方法,但是任何已加载模型的隐藏实例都会在事件(例如resize事件)上中断,并给出如下错误:

document.gEBI = document.getElementById;
document.gEBI(id);

我看过VM19014 viewer3D.min.js:53 Uncaught TypeError: Cannot read property '__webglFramebuffer' of null at k.initFrameBufferMRT (VM19014 viewer3D.min.js:53) .tearDown(),但它们似乎完全在查看器中卸载了模型,从而降低了用户的体验。

如果看不到观众,是否可以暂停观众?

编辑:

我接受了以下答案,因为它是一种正确的解决方案,而且如果我要重新整理页面,可能会寻求解决方案。

最后,我采用了另一种解决方法,将整个选项卡的内容移到了屏幕外,因此画布仍位于DOM中,并且不会在我的内容周围跳转:

finish()

2 个答案:

答案 0 :(得分:1)

恐怕没有办法暂停查看器的初始化。只能使用非零尺寸的画布进行初始化。您可以尝试使用z-index而不是display:none隐藏查看器的多个实例,以便它们都获得非空画布并正确初始化。

答案 1 :(得分:1)

除了将z-index设置为visibility的{​​{1}}之外,效果还不错:

hidden

工作代码:https://jsfiddle.net/dukedhx/bp9dycrt/