【问题标题】:How to overcome the port detach issue?如何克服端口分离问题?
【发布时间】:2012-09-06 06:53:43
【问题描述】:

在这个例子中:Undo/Redo

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

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

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

【问题讨论】:

    标签: javascript raphael draw2d graphiti-js


    【解决方案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));
    
    • 以上修改后问题解决了,可能是我弄错了。请纠正我,因为我没有对其进行深入测试,但它的工作原理。我需要你的指导。抱歉修改了代码。

    非常感谢你:)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 请详细说明,并附上可靠的来源参考。
      猜你喜欢
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 2023-03-10
      • 2011-09-11
      • 2017-09-13
      • 2014-08-30
      相关资源
      最近更新 更多