前几天 Autodesk Forge 释出新版本的 Viewer - v3.2,自此版本开始 Viewer Tool 引入优先级机制,每个 Tool 都可以各自设置自个的优先级,而这个优先级会被 ToolController
用来对那些已经注册在 ToolController
里的 Tool 进行排序,目前所有 Tool 的优先级默认都是 0,并会以下面这个方式设置:
this.getPriority = function() {
return 0;
};
Tool 优先级的数值越高者则可以更优先处理 viewer 的交互事件,如 handleSingleClick
、handleDoubleClick
、handleKeyDown
等,使用样例如下:
class MyTool extends Autodesk.Viewing.ToolInterface {
construtor() {
supper();
this.names = [ 'mytool' ];
}
}
class MyHighPriorityTool extends Autodesk.Viewing.ToolInterface {
construtor() {
supper();
this.names = [ 'mytool-high-priority' ];
}
// 修改默认优先级
getPriority() {
return 1000;
}
}
//注册工具
viewer.toolController.registerTool( new MyTool() );
viewer.toolController.registerTool( new MyHighPriorityTool() );
//启用工具
viewer.toolController.activateTool( 'mytool' );
viewer.toolController.activateTool( 'mytool-high-priority' );
上面样例是通过创建两个自定义工具来展示如何设置优先级,在这样设置后 MyHighPriorityTool
会比其他注册在 ToolController
里且启用的工具保有更高的优先级来处理 viewer 的交互事件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。