2009-09-13 2 views
4

я могу сделать OBJ использовать холст, чтобы сделать так:Эксклюзив анимации холста ... ... как очистить холст?

MyObj.myDiv = new Canvas($("effectDiv"), Setting.width, Setting.height); 

Тогда, я использую это, чтобы нарисовать прямоугольник на холсте:

var c = new Rectangle(80, 80, 
     { 
      fill: [220, 40, 90] 
     } 
    ); 
    var move = new Timeline; 
    move.addKeyframe(0, 
     { 
      x: 0, 
      y: 0 
     } 
    ); 
    c.addTimeline(move); 
    MyObj.myDiv.append(c); 

Но после того, как я рисую прямоугольник, Я хочу, чтобы очистить холст, но я не знаю, какой метод и как это сделать ... ...

O ... еще одна вещь: это веб-сайт торта: Link

ответ

6

Очистка холста:

canvas.clear = true; // makes the canvas clear itself on every frame 
canvas.fill = somecolor; // fills the canvas with some color on every frame 
// with canvas.clear = false and low-opacity fill, fancy motion blur effect 

Removing the rectangle from the canvas: 
rectangle.removeSelf(); 
or 
canvas.removeChild(rectangle); 
3

Вы можете попробовать этот метод:

MyObj.myDiv.clearRect(0, 0, canvas.width, canvas.height); 

который эффективно окрашивает весь холст в цвет фона.

2

Самый простой способ:

MyObj.myDiv.width = MyObj.myDiv.width; 
+1

Это быстрее, чем 'clearRect'? – kangax

+2

Обратите внимание, что это не работает отлично для Safari, несмотря на то, что претензии [Dive Into HTML5] (http://diveintohtml5.org/canvas.html#divingin). – Phrogz

0

Я обнаружил, что изменение размера холста работает как волшебство, даже если вы на самом деле не изменяя размер:

canvas.width = canvas.width 
+2

Обратите внимание, что это не работает отлично для Safari, несмотря на то, что претензии [Dive Into HTML5] (http://diveintohtml5.org/canvas.html#divingin). – Phrogz