【发布时间】:2021-02-11 21:33:37
【问题描述】:
我们在编辑模式下以编程方式添加一个圆圈和一些文本,效果很好。我们希望阻止用户向图层添加更多形状,但仍允许他们在画布周围移动圆圈和文本。如果当前图层中已经有一种类型,是否有阻止画布绘制形状的方法?
【问题讨论】:
标签: autodesk-forge autodesk-viewer
我们在编辑模式下以编程方式添加一个圆圈和一些文本,效果很好。我们希望阻止用户向图层添加更多形状,但仍允许他们在画布周围移动圆圈和文本。如果当前图层中已经有一种类型,是否有阻止画布绘制形状的方法?
【问题讨论】:
标签: autodesk-forge autodesk-viewer
不幸的是,没有官方配置选项仅允许选择/移动,并阻止创建其他标记。您必须进行逆向工程并覆盖 MarkupsCore 扩展对象的一些事件处理方法。例如,onMouseDown 方法如下所示:
proto.onMouseDown = function(event) {
dismissLmvHudMessage();
this.callSnapperMouseDown();
var bounds = this.getBounds();
var mousePosition = this.getMousePosition();
if (mousePosition.x >= bounds.x && mousePosition.x <= bounds.x + bounds.width && mousePosition.y >= bounds.y && mousePosition.y <= bounds.y + bounds.height) {
this.editMode.onMouseDown(event);
}
if (!this.editMode.creating && event.target === this.svg) {
this.selectMarkup(null);
}
this.ignoreNextMouseUp = false;
};
她,理论上你可以避免将“鼠标按下”事件传递给“编辑模式”,从而防止创建任何新的标记。
【讨论】: