Несколько экземпляров Autodesk Forge Viewer - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь иметь несколько экземпляров Autodesk Forge Viewer (v6.2), запущенных на моей странице, но скрытых во вкладках.

Когда пользователь переключает вкладки, он будет скрывать и показывать зрителя с загруженной моделью.

Пока у меня это работает, все скрытые экземпляры, которые загружают разрыв модели по событиям (событие изменения размера E.g), выдают ошибку вроде:

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

Я смотрел на .tearDown() и finish(), но, похоже, они полностью выгружают модель в программе просмотра, замедляя работу пользователя.

Есть ли способ приостановить просмотр, если он не виден?

Edit:

Я принял ответ ниже, так как это правильное решение, и, вероятно, я бы выбрал его, если бы заново делал страницу.

В конце концов, я выбрал другой обходной путь, где я переместил весь контент вкладки за экран, чтобы холст все еще работал в DOM, и он не перепрыгивал мой контент:

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

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Помимо z-index настройка visibility на hidden также хорошо работает:

#MyViewerDiv {visibility: hidden;}

Рабочий код: https://jsfiddle.net/dukedhx/bp9dycrt/

0 голосов
/ 29 октября 2018

Боюсь, что нет способа приостановить инициализацию зрителя. Его можно инициализировать только с холстом не нулевого размера. Вы можете попытаться скрыть несколько экземпляров средства просмотра, используя z-index вместо display:none, чтобы они все получили непустой холст и правильно инициализировались.

...