@Phrogz - То, что реализация canvas имеет двойную буферизацию, означает, что наличие двух холстов, одного для рисования и одного для отображения, а затем переворачивания, не будет плохим вариантом.

аюсь анимировать круг и просто перемещаю его по горизонтали, что отлично работает. Однако, пока круг движется, я должен сделать 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);
    }

Ответы на вопрос(0)

Ваш ответ на вопрос