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

Я только начал узнавать немного о холсте!

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

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

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

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

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

2 ответа

Решение

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

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

var draw = false;
$(function() {

    setInterval(function() {

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

        draw = !draw;

    }, 1000);

});

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

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

draw_rectange();
clear_canvas();

в

clear_canvas();
draw_rectange();

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

Другие вопросы по тегам