从Forge设置中删除工具按钮

时间:2019-03-10 10:28:38

标签: autodesk-forge autodesk-viewer

我想从锻造工具栏中删除一些按钮。

到目前为止,我已经使用@Philippe在PhilippeAnswer上的代码,并且成功删除了“ navTools”和“ modelTools”中的所有按钮。尝试使用“ settingsTools”时,我只能删除ModelBrowser按钮,而不能删除“属性”或“设置”或“全屏”按钮(在调试模式下,我将这些控件视为空值)。这是我的代码:

var viewerDiv = document.getElementById('MyViewerDiv');
viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv);
const onExtensionLoaded = (e) => {
    if (e.extensionId === 'Autodesk.DefaultTools.NavTools') {
        const settingsTools = viewer.toolbar.getControl('settingsTools')
        settingsTools.removeControl('toolbar-modelStructureTool') //That's ok!

        settingsTools.removeControl('toolbar-propertiesTool')  //NOT FUNCTIONING          
        const settingsButton = settingsTools.getControl('toolbar-propertiesTool') //It remains as null when debugging
        settingsTools.removeControl(settingsButton)

        settingsTools.removeControl('toolbar-settingsTool') //NOT FUNCTIONING          

        settingsTools.removeControl('toolbar-fullscreenTool') //NOT FUNCTIONING          

        viewer.removeEventListener(
            Autodesk.Viewing.EXTENSION_LOADED_EVENT,
            onExtensionLoaded)
    }
} 
viewer.addEventListener(Autodesk.Viewing.EXTENSION_LOADED_EVENT, onExtensionLoaded)
viewer.start(svfUrl, modelOptions, onLoadModelSuccess, onLoadModelError);

我知道我可以隐藏整个settingsTool,但是当对Property / Settings / Fullscreen按钮显示为true时,我也遇到相同的问题。似乎在调试代码时控件仍然为空。

请帮我面对“ settingsTools”工具栏中的最后3个按钮吗? 本质上,我试图了解查看器的全局自定义,删除UI中的所有内容并不是我的目的:)

谢谢!

1 个答案:

答案 0 :(得分:0)

何时删除特定按钮取决于某个扩展程序是否创建了该按钮,如果是,则取决于哪个扩展程序。

Philippe的答案所涉及的“ toolbar-firstPersonTool ”按钮是由“ Autodesk.FirstPerson ”扩展创建的,因此我们可以只听该扩展的加载。

但是,您感兴趣的按钮(例如“ toolbar-modelStructureTool ”)是“内置”的,不是由扩展程序创建的。因此,您必须收听另一个事件,如此博客文章所示,为“ TOOLBAR_​​CREATED_EVENT ”: When to remove toolbar buttons