Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 画布绘制-为什么要单击拖动。当我们有x和y坐标时需要推(拖动)?_Javascript_Jquery_Html5 Canvas - Fatal编程技术网

Javascript 画布绘制-为什么要单击拖动。当我们有x和y坐标时需要推(拖动)?

Javascript 画布绘制-为什么要单击拖动。当我们有x和y坐标时需要推(拖动)?,javascript,jquery,html5-canvas,Javascript,Jquery,Html5 Canvas,我在寻找画布绘图时遇到以下代码 1) 据我所知,不是。“clickDrag”正在添加第三个参数,但只给出了2个参数 // two params passed addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop); function addClick(x, y, dragging) { ... clickDrag.push(dragging); } 我猜addClick函数也在其他地方调用,使用这个参数 2)

我在寻找画布绘图时遇到以下代码

1) 据我所知,不是。“clickDrag”正在添加第三个参数,但只给出了2个参数

// two params passed
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);

function addClick(x, y, dragging) {
    ...
    clickDrag.push(dragging);
}
我猜addClick函数也在其他地方调用,使用这个参数

2) 我猜clickDrag正在存储用户是否正在拖动。因此,如果拖动,移动到下一个鼠标位置(clickX[i-1]在数组中引用鼠标单击位置,因此-1(数组从0开始))

如果不拖动,代码将从数组索引i的结果中显示-1。我不知道这个电话的上下文,所以我不能帮你,对不起

编辑-------------

所以我下载了源代码,但找不到您在第二个问题中引用的代码。不过,我发现:

    context.beginPath();
    if(clickDrag[i] && i){
        context.moveTo(clickX[i-1], clickY[i-1]);
    }else{
        context.moveTo(clickX[i], clickY[i]);
    }
    context.lineTo(clickX[i], clickY[i]);
    context.closePath();

有没有可能您不小心添加了-1?

没有,这不是打字错误。你查过网站了吗。就在那里。代码片段大于网站中的演示大小
// two params passed
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);

function addClick(x, y, dragging) {
    ...
    clickDrag.push(dragging);
}
    context.beginPath();
    if(clickDrag[i] && i){
        context.moveTo(clickX[i-1], clickY[i-1]);
    }else{
        context.moveTo(clickX[i], clickY[i]);
    }
    context.lineTo(clickX[i], clickY[i]);
    context.closePath();