2011-12-13 3 views
0

Я только начал изучать немного о холсте!Почему мерцающий прямоугольник (утопленный холстом) не работает?

Я хочу нарисовать прямоугольник, который мерцает (показывает/прячет/показывает/прячет/показывает ...) после заданного интервала времени.

Если я удалю setInterval() и clear_canvas() - прямоугольник утонет. Проблема, кажется, в clear_canvas(). Я получил этот код от here.

На данный момент он просто показывает пустую страницу. На мой взгляд, нужно рисовать, чистить, рисовать, очищать ...

Я добавил console.log() для отладки; это называется! В Chrome 14 нет ошибок или чего-либо (на Fedora 15, если это имеет значение). Кажется, все в порядке; к сожалению, это не так!

Я поместил код на JsFiddle, чтобы вы, ребята, могли мне помочь. Благодаря!

ответ

3

Ваша проблема в том, что он очищает прямоугольник от момента его нарисования.

Вам нужно будет сделать функцию чередованием между рисованием и очисткой, чтобы заметить что-либо.

var draw = false; 
$(function() { 

    setInterval(function() { 

     console.log('called'); 
     if(draw) 
       draw_rectange(); 
     else 
       clear_canvas(); 

     draw = !draw; 

    }, 1000); 

}); 
+0

Позор на меня, не понимая это сам. :( – daGrevis

+1

Вы не первый ... как вы думаете, я знал, что это проблема?: P –

0

Ненависть к этим парням, но это простой вопрос порядка операций. очистите холст, прежде чем рисовать его, а не после.

переключатель

draw_rectange(); 
clear_canvas(); 

в

clear_canvas(); 
draw_rectange(); 

результат: http://jsfiddle.net/pYve5/4/

 Смежные вопросы

  • Нет связанных вопросов^_^