如何覆盖 Autodesk 内置查看器扩展

how to override Autodesk built-in viewer extension

例如,我在 ForgeViewer.js 中添加了 Autodesk 内置扩展,如下所示:

viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('forgeViewer'), { extensions: ['Autodesk.VisualClusters'] });

在运行之后,默认工具提示会显示“按类别形成集群”,如何覆盖它说“形成集群”?

不幸的是,工具提示在扩展代码中被硬编码为文字字符串,因此无法将新字符串作为参数传递。但是,您可以使用以下代码覆盖工具提示。

const ext = myViewer.getExtension('Autodesk.VisualClusters');
ext.clusterButton.setToolTip('my tooltip');

如果您想在查看器初始化期间执行此操作,您可以使用 'EXTENSION_LOADED_EVENT' 事件并等待创建按钮:

myViewer.addEventListener(Autodesk.Viewing.EXTENSION_LOADED_EVENT,
(event) => {
  const ext = myViewer.getExtension('Autodesk.VisualClusters');
  if ( ext )
    setTimeout(() => { ext.clusterButton.setToolTip('my tooltip'); }, 500);
});

或使用事件对象

myViewer.addEventListener(Autodesk.Viewing.EXTENSION_LOADED_EVENT,
(event) => {
  if ( event.extensionId === 'Autodesk.VisualClusters' )
    setTimeout(() => {
      event.target.getExtension(event.extensionId).clusterButton.setToolTip('my tooltip');
    }, 500);
});