ZoomWindow extension breaks without GUI?

两盒软妹~` 提交于 2019-12-13 07:24:22

问题


Using v2.13 of the viewer, the ZoomWindow extension relies on having the default GUI enabled. Is there a way around this? The load method is:

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;
};

which fails because getToolbar is undefined.

It seems from the commented out line that this has been considered, but not implemented.

What is the best way to implement a work around - should I copy the entire extension with a new name, or can I replace the load method at runtime?

Edit: was looking to use the headless viewer, but it seems easiest just to hide the UI with css.


回答1:


It's not clear to me if you are using the GuiViewer3D or want to use the Viewer3D, the viewer without Autodesk custom UI. If you use GuiViewer3D, you can simply wait for the toolbar to be loaded before loading the ZoomWindow extension, which requires the toolbar controls to be created in order to add a button to it.

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

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

Here is a blogpost I wrote a while ago about using events in the viewer. It is not up-to-date with the current version but remains valid: http://adndevblog.typepad.com/cloud_and_mobile/2015/10/event-watcher-extension-for-view-data.html

Now as Zhong mentioned, if you want to use the headless viewer with no UI and still use the extension, you may have to copy and customize it as you suggested. But an easier workaround could be to use GuiViewer3D and simply hide the existing toolbar with css, so the the js code remains valid. Set display:none on div id="guiviewer3d-toolbar", for example, or on the adsk-control class.

Hope that helps



来源:https://stackoverflow.com/questions/42517648/zoomwindow-extension-breaks-without-gui

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!