在 Autodesk 查看器中出现 webGL 错误

Getting webGL error in autodesk viewer

我收到如下错误: 未捕获类型错误:无法读取 null

的 属性 '__webglFramebuffer'

当我要转到与附加了 Autodesk 查看器的页面链接的另一个页面时。我不知道它为什么会来。我正在为我的网站使用 angularjs,并且该页面的控制器中没有关于查看器的代码。

您收到此错误是因为您没有销毁您离开的页面上的查看器实例,因此当收到页面调整大小等事件时,查看器将尝试重新呈现,并且由于 WebGL 上下文已被销毁,它将解雇这个错误。

只需放置一些在您离开查看器页面时调用的清理处理程序,具体取决于您使用的 angular 版本,您应该可以轻松找到如何做到这一点,然后放置以下代码来清理查看器:

// assumes this.viewer contains your viewer, your code might be different ...
// make sure viewer has been created
if (this.viewer) {

  // I added this to handle some specific cases
  if(this.viewer.impl.selector) {

    this.viewer.tearDown()
    this.viewer.finish()
    this.viewer = null
  }
}