上下文菜单回调中的点击事件信息
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) {
...
可以为查看器的上下文菜单创建自定义项,并且可以注册回调 ('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) {
...