Klar Canvas Rect (aber immer im hintergrund)

Ich versuche zu animieren, einen Kreis und nur Sie horizontal bewegen, welche gut funktioniert. Doch während der Kreis bewegt sich, ich muss ein clearRect über diesen Kreis so, dass Sie zieht es selbst in der horizontalen Richtung. Wenn ich eine clearRect es macht auch den hintergrund, eine weiße box, etwa so effektiv sein wird, eine weiße horizontale Linie in der Richtung sich der Kreis bewegt.

  1. Gibt es eine Möglichkeit zum löschen der Kreis ohne clearRect?
  2. Wenn ich ständig Neuzeichnen des Hintergrunds nach clearRect die Leinwand flimmern wird, wenn es sagen wir 10 Kreise in diesem Bereich.

Andere Ansätze zur Lösung dieser?

    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);
    }
Ist der Kreis die einzige Sache, die gehen, um auf der Leinwand?
Nein, nicht, ich war anfangs etwas einfaches und dann in der Hoffnung, dass es mehr generische als ich die Einführung von mehr Kreise oder andere Formen. Habe ich noch nicht getestet, aber vielleicht konnten Sie seine Präsenz in einer fristgerechten Weise, wie es bewegt sich entlang der Leinwand? nur so ein Gedanke.

InformationsquelleAutor fes | 2011-04-08

Schreibe einen Kommentar