情况是: 我有一个画布并在mousedown上绘制东西,我有一个生成按钮,可以生成新的画布'你可以用同样的方式画画。 但问题是,当您单击上一个画布时,它开始绘制新画布。它不能绘制功能必须停在那里的新画布。 这是绘图功能:
canvas.onmousedown = function(e) {
if (!painting) {
painting = true;
} else {
painting = false;
}
lastX = e.pageX - this.offsetLeft;
lastY = e.pageY - this.offsetTop;
};
canvas.onmousemove = function(e) {
if (painting) {
mouseX = e.pageX - this.offsetLeft;
mouseY = e.pageY - this.offsetTop;
// find all points between
var x1 = mouseX,
x2 = lastX,
y1 = mouseY,
y2 = lastY;
var steep = (Math.abs(y2 - y1) > Math.abs(x2 - x1));
if (steep){
var x = x1;
x1 = y1;
y1 = x;
var y = y2;
y2 = x2;
x2 = y;
}
if (x1 > x2) {
var x = x1;
x1 = x2;
x2 = x;
var y = y1;
y1 = y2;
y2 = y;
}
var dx = x2 - x1,
dy = Math.abs(y2 - y1),
error = 0,
de = dy / dx,
yStep = -1,
y = y1;
if (y1 < y2) {
yStep = 1;
}
for (var x = x1; x < x2; x++) {
if (steep) {
ctx.fillRect(y, x, 1, 1);
} else {
ctx.fillRect(x, y, 1, 1);
}
error += de;
if (error >= 0.5) {
y += yStep;
error -= 1.0;
}
}
lastX = mouseX;
lastY = mouseY;
}
};
这是jsfiddle问题http://jsfiddle.net/regeme/eV6kW/3/ 任何帮助都会很棒。
答案 0 :(得分:0)
我在代码中添加了onmouseup
,只有在按住鼠标时才能绘制,问题是手动创建的第一个画布及其回调。
使用这种方式清除将清除当前正在处理的画布。
查看代码以获得更多洞察力: http://jsfiddle.net/cryostat/grb8e/1/