0

在此示例中:撤消/重做

  • 将起始节点拖放到画布上。
  • 鼠标按下端口并拖动它。
  • 现在在拖动时按右键单击。

现在的问题是端口与起始节点分离。它不应该发生。

请查看下图以更好地理解。请帮助我克服这个问题。提前致谢。

在此处输入图像描述

4

2 回答 2

1

我仔细分析了这个问题,得出的结论是:

  • 问题在于鼠标向下和鼠标向上。
  • 正如我所看到的,当我按下鼠标并拖动端口然后按下鼠标右键时。然后会发生什么是在 canvas.js 中调用鼠标按下。
  • 然后当鼠标右键然后调用canvas.js的鼠标并使mouseDown = false。

    this.html.bind("mouseup touchend", $.proxy(function(event)
        {
            if (this.mouseDown === false)
                return;
    
            event = this._getEvent(event);
    
            this.mouseDown = false;// it makes mouseDown false
            this.onMouseUp();
        }, this));
    
  • 因此,为了知道快速修复,我已经检查了鼠标右键是否向上和鼠标右键,然后返回为:

在鼠标按下:

    this.html.bind("mousedown touchstart", $.proxy(function(event)
        {                
           event.preventDefault();

           if(event.which == 3)//added this in the mouse down
              return;

           event = this._getEvent(event);

           this.mouseDownX = event.clientX;
           this.mouseDownY = event.clientY;
           var pos = this.fromDocumentToCanvasCoordinate(event.clientX, event.clientY);
           this.mouseDown = true;
           this.onMouseDown(pos.x, pos.y);
    }, this));

在鼠标向上:

this.html.bind("mouseup touchend", $.proxy(function(event)
        {
            //added extra condition for right click
            if (this.mouseDown === false || event.which == 3)
                return;

            event = this._getEvent(event);

            this.mouseDown = false;// it makes mouseDown false
            this.onMouseUp();
        }, this));
  • 经过以上修改后问题解决了,我可能是错的。请纠正我,因为我没有对其进行深入测试,但它的工作原理。我需要你的指导。抱歉更改代码。

非常感谢:)

于 2012-09-06T13:00:45.090 回答
0

这是一个错误,将在下一个版本中修复。

于 2012-09-06T10:28:18.333 回答