上下文菜单回调中的点击事件信息

Click event information in context menu callback

可以为查看器的上下文菜单创建自定义项,并且可以注册回调 ('target' 属性)。但是点击事件并没有在这个回调中传递——我需要它来获得 'ctrl' 键状态。 要解决这个问题,我必须将 Autodesk.Viewing.Private.ContextMenu.prototype.addCallbackToMenuItem 方法重写为 'dirty solution'。 还有其他解决办法吗? P.S。或者你可以在 'addCallbackToMenuItem' 方法中直接在 'target' 回调中传递 'event' 吗?变化不大,但对处理元按钮状态很有用

不太确定您需要什么?

当您注册自定义上下文菜单时,您可以访问原始鼠标事件以及 status 对象的按键状态:

NOP_VIEWER.registerContextMenuCallback('MyExtensionName', function (menu, status) {

         menu.push({
              title: 'context menu name',
              target: function () {
                  //access mouse event via "status.event"
         }});

      })

编辑 相同的事件对象可用于 Autodesk.Viewing.Extensions.ViewerObjectContextMenu.buildMenu

ViewerObjectContextMenu.prototype.buildMenu = function (event, status) {
...