javascript - Autodesk Forge Viewer 的多个实例

标签 javascript three.js autodesk-forge autodesk-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(),但它们似乎完全卸载了查看器中的模型,从而降低了用户体验。

如果查看器不可见,是否有暂停查看器的方法?

编辑:

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

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

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

最佳答案

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

关于javascript - Autodesk Forge Viewer 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53042518/

相关文章:

api - Autodesk Forge API。如何获取项目的特定版本?

javascript - 如何使用 jquery 或 javascript 重新定位 JSON 中对象的键

three.js - 删除three.js中的 "Texture has been resized"控制台日志

three.js - 将多个线几何组合成单个几何

javascript - Three.js: map 和属性未定义以及在本地使用图像

javascript - 有什么方法可以从查看器中的 Revit 文档中读取实体(架构)吗?

javascript - jquery中的添加和删除按钮功能

javascript - 替换正则表达式中的 img 元素 src 属性

javascript - HTML网站菜单动画

autodesk-forge - 无法翻译大型压缩文件,例如 5GB 和 8GB