首页 > 解决方案 > Autodesk Forge Viewer 的多个实例

问题描述

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

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

虽然我有这个工作,但任何已加载模型的隐藏实例都会中断事件(例如调整大小事件),并给出如下错误:

VM19014 viewer3D.min.js:53 Uncaught TypeError: Cannot read property '__webglFramebuffer' of null
    at k.initFrameBufferMRT (VM19014 viewer3D.min.js:53)

我看过,.tearDown()finish()他们似乎完全卸载了查看器中的模型,减慢了用户的体验。

如果看不到,有没有办法暂停查看器?

编辑:

我已经接受了下面的答案,因为它是一个正确的解决方案,如果我重新做这个页面,我可能会选择一个。

最后,我采用了不同的解决方法,将整个选项卡内容移到屏幕外,这样画布仍然存在于 DOM 中,并且不会跳转我的内容:

  .tab-content {
    top: -9999px;
    left: -9999px;
    position: absolute;
    display: block !important;
  }

标签: javascriptthree.jsautodesk-forgeautodesk-viewer

解决方案


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


推荐阅读