开发者问题收集

在 Autodesk Viewer 中出现 webGL 错误

2017-07-27
922

我收到如下错误: 未捕获的 TypeError:无法读取 null 的属性“__webglFramebuffer”

当我要转到与附加了 autodesk viewer 的页面链接的另一个页面时。我不知道为什么会出现这种情况。我在我的网站上使用了 angularjs,该页面的控制器中没有关于 viewer 的代码。

1个回答

您收到此错误是因为您没有销毁离开页面上的查看器实例,因此当收到诸如页面调整大小之类的事件时,查看器将尝试重新渲染,并且由于 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
  }
} 
Felipe
2017-08-05