Javascript,在 canvas 上绘制时 setInterval() 或 increment (i+=) 不起作用? (Javascript/coding 的新手)
Javascript, while drawing on a canvas setInterval() or increment (i+=) is not working? (New to Javascript/coding)
我正在尝试从 canvas 上的单击位置通过 canvas 为框的描边设置动画。
正方形在单击的 canvas 上绘图,但 p & q values/variables 不是 updating/incrementing。
当我运行一个不以clientX和clientY为起始位置的类似function()时,它起作用并根据增量值绘制正方形。
感谢任何帮助。
var clickx = []
var clicky = []
addEventListener("click", clickInfo);
addEventListener("click", drawSquare1);
function clickInfo(){
j = event.clientX;
k = event.clientY;
clickx.push(j)
clicky.push(k)
}
function drawS(){
p = clickx[0]
q = clicky[0]
ctx.beginPath();
ctx.rect(p, q, 40, 40);
ctx.strokeStyle = "rgba(0, 0, 255, 0.5)";
ctx.stroke();
ctx.closePath();
P += 5;
q += 5;
}
function drawSquare1(){
setInterval(drawS, 5);
}
变量 p 和 q 没有递增,因为每次调用 drawS 时它们都被重置为相同的值(如 rgthree 所指出的)。
要解决此问题,您应该按如下方式设置...
var p = 0,
q = 0;
function drawS() {
// increase by 5
p += 5;
q += 5;
//... do stuff
}
function drawSquare1() {
// initial values before loop
p = clickx[0];
q = clicky[0];
// start loop
setInterval (drawS, 5);
}
我正在尝试从 canvas 上的单击位置通过 canvas 为框的描边设置动画。
正方形在单击的 canvas 上绘图,但 p & q values/variables 不是 updating/incrementing。
当我运行一个不以clientX和clientY为起始位置的类似function()时,它起作用并根据增量值绘制正方形。
感谢任何帮助。
var clickx = []
var clicky = []
addEventListener("click", clickInfo);
addEventListener("click", drawSquare1);
function clickInfo(){
j = event.clientX;
k = event.clientY;
clickx.push(j)
clicky.push(k)
}
function drawS(){
p = clickx[0]
q = clicky[0]
ctx.beginPath();
ctx.rect(p, q, 40, 40);
ctx.strokeStyle = "rgba(0, 0, 255, 0.5)";
ctx.stroke();
ctx.closePath();
P += 5;
q += 5;
}
function drawSquare1(){
setInterval(drawS, 5);
}
变量 p 和 q 没有递增,因为每次调用 drawS 时它们都被重置为相同的值(如 rgthree 所指出的)。
要解决此问题,您应该按如下方式设置...
var p = 0,
q = 0;
function drawS() {
// increase by 5
p += 5;
q += 5;
//... do stuff
}
function drawSquare1() {
// initial values before loop
p = clickx[0];
q = clicky[0];
// start loop
setInterval (drawS, 5);
}