没有GUI的ZoomWindow扩展中断?

时间:2017-02-28 19:57:29

标签: autodesk-forge autodesk-viewer

使用查看器的v2.13,ZoomWindow扩展依赖于启用默认GUI。有没有解决的办法?加载方法是:

proto.load = function() {
    var viewer = this.viewer;
    var toolbar = viewer.getToolbar(true);
    //var toolbar = viewer.getToolbar ? viewer.getToolbar(true) : undefined;

    // Init & Register tool
    this.tool = new namespace.ZoomWindowTool(viewer);
    viewer.toolController.registerTool(this.tool);

    // Add the ui to the viewer.
    this.createUI(toolbar);
    return true;
};

失败,因为getToolbar未定义。

从注释出来的行看来,这已被考虑过,但尚未实施。

实现解决方法的最佳方法是 - 我应该使用新名称复制整个扩展,还是可以在运行时替换load方法?

编辑:希望使用无头观察器,但用css隐藏UI似乎最容易。

1 个答案:

答案 0 :(得分:2)

我不清楚您是使用GuiViewer3D还是想使用Viewer3D,即没有Autodesk自定义UI的查看器。如果您使用GuiViewer3D,您只需等待加载工具栏,然后再加载ZoomWindow扩展,这需要创建工具栏控件以便为其添加按钮。

viewer.addEventListener(Autodesk.Viewing.TOOLBAR_CREATED_EVENT, function () {

   viewer.loadExtension('Autodesk.Viewing.ZoomWindow')
})

这是我刚才写的关于在查看器中使用事件的博客文章。它与当前版本不是最新的,但仍然有效: http://adndevblog.typepad.com/cloud_and_mobile/2015/10/event-watcher-extension-for-view-data.html

正如钟提到的那样,如果您想使用没有UI的无头查看器并仍然使用扩展程序,您可能需要按照建议复制和自定义它。但更简单的解决方法可能是使用GuiViewer3D并简单地用css隐藏现有工具栏,因此js代码仍然有效。在div id =" guiviewer3d-toolbar"上设置display:none,或在adsk-control类上设置。

enter image description here

希望有所帮助