Canvas ES5画布鼠标向下拖动问题

Canvas ES5画布鼠标向下拖动问题,canvas,drag-and-drop,drag,ecmascript-5,mousedown,Canvas,Drag And Drop,Drag,Ecmascript 5,Mousedown,我想用鼠标向下来检测你什么时候抓到了一件物品。 对于上下文,我在一个数组中有两个精灵,我可以在它们的边界框中检测到单击,它将正确地传递到mousedownHandler中 spArray[1]是我试图拖动的画布精灵。clickedBoundingBox工作正常 function canvasMouseDownHandler(ev,ctx,spArray){ if (spArray[1].clickedBoundingBox(ev)){ console.log("Moused

我想用鼠标向下来检测你什么时候抓到了一件物品。 对于上下文,我在一个数组中有两个精灵,我可以在它们的边界框中检测到单击,它将正确地传递到mousedownHandler中

spArray[1]是我试图拖动的画布精灵。clickedBoundingBox工作正常

function canvasMouseDownHandler(ev,ctx,spArray){

   if (spArray[1].clickedBoundingBox(ev)){
       console.log("Mousedown successful");

       var mx = ev.offsetX; 
       var my = ev.offsetY;

       spArray[1].x = Math.round(mx-spArray[1].width/2);
       spArray[1].y = Math.round(my-spArray[1].height/2);

}
目前的情况是,它会立即捕捉到鼠标位置,并且不会保持拖动。通过控制台日志,我希望看到重复记录“mousedown successful”

我曾考虑使用setInterval函数将精灵捕捉到鼠标位置,但后来遇到了在mouseup上清除间隔的问题。我对事件还相当陌生,我正在努力理解这一点


非常感谢您的帮助。

如果我理解正确,您希望在鼠标移动时触发
MouseDownHandler
,我不知道有哪种语言会这样

  • 每次按下鼠标按钮时,MouseDown应该是一次性事件
  • 就像鼠标按钮松开时,鼠标会弹出一次一样
  • 应该有更频繁触发的MouseMove
有了这些信息,你就可以开始工作了

拖动是鼠标向下和鼠标向下之间发生的每一个移动p

如果我理解正确,您希望鼠标移动时触发
MouseDownHandler
,我不知道有哪种语言会这样做

  • 每次按下鼠标按钮时,MouseDown应该是一次性事件
  • 就像鼠标按钮松开时,鼠标会弹出一次一样
  • 应该有更频繁触发的MouseMove
有了这些信息,你就可以开始工作了
拖动是鼠标向下和鼠标向上之间发生的每一个移动