查看本地文件时如何加载扩展名

时间:2018-07-09 09:29:32

标签: autodesk-forge

我使用的例子取自viewer-javascsript-offline.sample

我有一个使用nodejs教程(link)创建的扩展程序,使用教程代码注册该扩展程序可以使其正常工作。但是,当我使用脱机查看器代码示例(使用viewer3D而不是viewingApplication)尝试相同的操作时,我无法查看扩展程序的按钮。

注意:我可以保证handleselectionextension.js可以正常工作,因为在教程版本中可以正常使用。

代码:
index.cssindex.html

.handleSelectionToolbarButton {
  background-image: url(https://github.com/encharm/Font-Awesome-SVG-PNG/raw/master/white/png/24/object-group.png);
  background-size: 24px;
  background-repeat: no-repeat;
  background-position: center;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Very Basic 3D Viewer</title>
  <link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/style.min.css?v=4.2.*" type="text/css">
  <link href="index.css" rel="stylesheet" />

</head>

<body>
  <div id="MyViewerDiv"></div>

  <!-- The Viewer JS -->
  <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/three.min.js?v=4.2.*"></script>
  <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js?v=4.2.*"></script>
  <script src="handleselectionextension.js"></script>

  <!-- Developer JS -->
  <script>
    var myViewerDiv = document.getElementById('MyViewerDiv');
    var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv);
    var options = {
      'env': 'Local',
      'document': "0/1/Design.svf",
      'extensions': ["HandleSelectionExtension"]
    };
    Autodesk.Viewing.Initializer(options, function() {
      viewer.start(options.document, options);
    });
  </script>
</body>

</html>

1 个答案:

答案 0 :(得分:0)

扩展名配置不适用于Initializer,您必须将其传递给查看器构造函数的第二个参数,如下所示:

var config3d = {
    'extensions': ["HandleSelectionExtension"]
};

var myViewerDiv = document.getElementById('MyViewerDiv');
var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv, config3d);

var options = {
  'env': 'Local',
  'document': "0/1/Design.svf"
};

Autodesk.Viewing.Initializer(options, function() {
  viewer.start(options.document, options);
});