Почему мерцающий прямоугольник (затопленный холстом) не работает? - PullRequest
0 голосов
/ 13 декабря 2011

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

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

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

var draw = false;
$(function() {

    setInterval(function() {

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

        draw = !draw;

    }, 1000);

});
0 голосов
/ 24 июля 2013

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

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

draw_rectange();
clear_canvas();

до

clear_canvas();
draw_rectange();

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

...