如何克服端口分离问题?

时间:2012-09-06 06:53:44

标签: javascript raphael draw2d graphiti-js

在此示例中:Undo/Redo

  • 将开始节点放到画布上。
  • 端口上的Mousedown并拖动它。
  • 现在在拖动的同时按下RIGHT CLICK。

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

请查看下面的图片以便更好地理解。 请帮我解决这个问题。 提前谢谢。

enter image description here

2 个答案:

答案 0 :(得分: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));
  • 经过上述修改后,问题解决了,我可能错了。请纠正我,因为我没有深入测试,但是你的工作。我需要你的指导。很抱歉改变代码。

非常感谢你:)

答案 1 :(得分:0)

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