【问题标题】:Forge Viewer Extension for Toolbar: How to add a custom combox工具栏的 Forge 查看器扩展:如何添加自定义组合框
【发布时间】:2020-11-07 10:39:06
【问题描述】:

我正在尝试将自定义组合框添加到伪造查看器的工具栏中。下面是它的代码。我能够成功地添加按钮并且它们可以正常工作。但组合框不是。它添加了一个组合框,但是当我单击它时它确实显示了飞出菜单。不知道我做错了什么。帮忙!

function BuildingToolbarExtension(viewer, options) {
    Autodesk.Viewing.Extension.call(this, viewer, options);
}

BuildingToolbarExtension.prototype = Object.create(Autodesk.Viewing.Extension.prototype);
BuildingToolbarExtension.prototype.constructor = BuildingToolbarExtension;

BuildingToolbarExtension.prototype.load = function () {
    // Set background environment to "Infinity Pool"
    // and make sure the environment background texture is visible
    this.viewer.setLightPreset(6);
    this.viewer.setEnvMapBackground(true);

    // Ensure the model is centered
    //this.viewer.fitToView();

    return true;
};

BuildingToolbarExtension.prototype.unload = function () {
    // nothing yet
    if (this.subToolbar) {
        this.viewer.toolbar.removeControl(this.subToolbar);
        this.subToolbar = null;
    }
};

BuildingToolbarExtension.prototype.onToolbarCreated = function (toolbar) {
    alert('TODO: customize Viewer toolbar');
    var viewer = this.viewer;

    // Button 1
    var button1 = new Autodesk.Viewing.UI.Button('show-env-bg-button');
    button1.onClick = function (e) {
        viewer.setEnvMapBackground(true);
    };
    button1.addClass('show-env-bg-button');
    button1.setToolTip('Show Environment');

    // Button 2
    var button2 = new Autodesk.Viewing.UI.Button('hide-env-bg-button');
    button2.onClick = function (e) {
        viewer.setEnvMapBackground(false);
    };
    button2.addClass('hide-env-bg-button');
    button2.setToolTip('Hide Environment');

    var comboButton = new Autodesk.Viewing.UI.ComboButton('buildings');
    comboButton.setToolTip('buildings');
    this.floors = new Autodesk.Viewing.UI.ControlGroup('my-custom-toolbar1');
    this.floors.addControl(button1);
    this.floors.addControl(button2);
    comboButton.addControl(this.floors);
    comboButton._isCollapsed = true;
    comboButton.onClick = function (e) {

        this.setCollapsed(false);
    }
    
    
    // SubToolbar
    this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('my-custom-toolbar');
    this.subToolbar.addControl(button1);
    this.subToolbar.addControl(button2);
    this.subToolbar.addControl(comboButton);
    toolbar.addControl(this.subToolbar);
};

Autodesk.Viewing.theExtensionManager.registerExtension('BuildingToolbarExtension', BuildingToolbarExtension);

【问题讨论】:

    标签: autodesk-forge forge


    【解决方案1】:

    ControlGroup在您的情况下是不必要的,请参考以下内容将按钮添加到ComboButton

    var comboButton = new Autodesk.Viewing.UI.ComboButton('buildings');
    comboButton.setToolTip('buildings');
    
    // Button 1
    var button1 = new Autodesk.Viewing.UI.Button('show-env-bg-button');
    button1.onClick = function (e) {
        viewer.setEnvMapBackground(true);
    };
    button1.addClass('show-env-bg-button');
    button1.setToolTip('Show Environment');
    comboButton.addControl(button1);
    
    // Button 2
    var button2 = new Autodesk.Viewing.UI.Button('hide-env-bg-button');
    button2.onClick = function (e) {
        viewer.setEnvMapBackground(false);
    };
    button2.addClass('hide-env-bg-button');
    button2.setToolTip('Hide Environment');
    comboButton.addControl(button2);
    

    以下是快照:

    • 开盘前

    • 打开后

    【讨论】:

    • 感谢工作!你知道我是否可以在下拉菜单中为这些按钮添加测试?
    • 我可以知道您要添加什么测试吗?您可以通过向Button. onClick提供函数来添加按钮单击操作
    猜你喜欢
    • 2021-01-10
    • 2020-10-04
    • 2020-08-27
    • 2019-08-31
    • 2021-06-07
    • 2020-10-18
    • 2021-09-18
    • 2021-02-08
    • 2014-10-08
    相关资源
    最近更新 更多