Forge Viewer 自定义组合框/组合按钮

Posted

技术标签:

【中文标题】Forge Viewer 自定义组合框/组合按钮【英文标题】:Forge Viewer Custom Combox/ComboButton 【发布时间】:2021-02-04 03:13:34 【问题描述】:

您好,我正在尝试添加自定义组合框,这是我的代码

  addCustomCombox(parentCtrl: any) 

    //create combox
    const comboButton = new Autodesk.Viewing.UI.ComboButton('buildings');
    comboButton.setToolTip('buildings');

    //create button
    var button1 = new Autodesk.Viewing.UI.Button('show-env-bg-button');
    button1.onClick = function (e) 
      alert('test');
    ;
    button1.addClass('show-env-bg-button');
    button1.setToolTip('Show Environment');

    //attach button to combox
    comboButton.addControl(button1);

    parentCtrl.addControl(comboButton)
  

但是我在comboButton.addControl() 上遇到错误,它说预期的参数为 0。我签入了节点模块,这是 ComboButton 的功能

  class ComboButton extends Button 
    constructor(id: string, options?: object);

    addControl(): void;
    restoreDefault(): void;
    saveAsDefault(): void;
  

addControl 不接受任何参数。那么如何创建自定义组合框?非常感谢任何帮助。谢谢

***** 参考:Forge Viewer Extension for Toolbar: How to add a custom combox

【问题讨论】:

【参考方案1】:

你使用打字稿定义?

只需像这样修改它:

      class ComboButton extends Button 
        constructor(id: string, options?: object);

        addControl(button: any): void;
        restoreDefault(): void;
        saveAsDefault(): void;
      

【讨论】:

帕克斯顿说得对。 Forge Viewer 的 TypeScript 定义是手工编写的,不幸的是这是一个错字。 ComboButton#addControl 方法确实接受 Button 对象作为其参数。 另外,当您遇到此类问题时,请随时向github.com/DefinitelyTyped/DefinitelyTyped/issues 报告问题(在标题中注明@types/forge-viewer)。 谢谢各位,问题已解决。我选择不使用打字稿定义

以上是关于Forge Viewer 自定义组合框/组合按钮的主要内容,如果未能解决你的问题,请参考以下文章

Autodesk Forge Viewer 中的自定义点着色器在正交摄影机上表现异常

如何在 Autodesk Forge Viewer 中通过对象的 dbid 设置对象的自定义属性?

forge-viewer CSS 破坏网站样式

Autodesk Forge Viewer 中的三个 JS 限制变换控制运动

自定义控件中的组合控件

尝试在 mousepress 事件中使用来自另一个组合框的值加载自定义组合框