首页 > 解决方案 > 伪造查看器标记扩展可防止多种类型的工具

问题描述

我们在编辑模式下以编程方式添加一个圆圈和一些文本,效果很好。我们希望阻止用户向图层添加更多形状,但仍允许他们在画布周围移动圆圈和文本。如果当前图层中已经有一种类型,是否有阻止画布绘制形状的方法?

标签: autodesk-forgeautodesk-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;
};

她,理论上你可以避免将“鼠标按下”事件传递给“编辑模式”,从而防止创建任何新的标记。


推荐阅读