Я пытаюсь оживить круг и просто перемещать его по горизонтали, что отлично работает. Однако, пока круг движется, я должен сделать clearRect над этим кругом, чтобы он перерисовывал его в горизонтальном направлении. Когда я делаю clearRect, он также делает фон белым ящиком так эффективно, что он будет одной белой горизонтальной линией в направлении движения круга.
- Есть ли способ очистить круг без clearRect?
- Если мне нужно продолжить перерисовку фона после clearRect, холст будет мерцать, если в этой области будут отображаться 10 кругов.
Любые другие подходы к решению этого вопроса?
function drawcircle() {
clear();
context.beginPath();
context.arc(X, Y, R, 0, 2*Math.PI, false);
context.moveTo(X,Y);
context.lineWidth = 0.3;
context.strokeStyle = "#999999";
context.stroke();
if (X > 200)
{
clearTimeout(t); //stop
}
else
{
//move in x dir
X += dX;
t = setTimeout(drawcircle, 50);
}
}
function clear() {
context.clearRect(X-R, Y-R, 2*R, 2*R);
}