使用查看器的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似乎最容易。
答案 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类上设置。
希望有所帮助