为什么闪烁的矩形(被帆布淹没)不起作用?

Why flickering rectangle (drown by canvas) doesn't work?

本文关键字:淹没 帆布 不起作用 闪烁 为什么      更新时间:2023-09-26

我刚刚开始学习一点关于画布的知识!

我想画一个矩形,在设定的时间间隔后闪烁(显示/隐藏/显示/隐藏/显示…)

如果我去掉setInterval()clear_canvas() -矩形被淹没。问题似乎在clear_canvas()。我从这里得到的代码。

目前它只是显示空白页。在我看来,它应该画、画、画、画、画……

我增加了console.log()进行调试;它被称为!在Chrome 14中没有错误或任何抛出(在Fedora 15上,如果有关系的话)。一切似乎都很好;不幸的是,事实并非如此!

我把代码放在JsFiddle上,所以你们可以帮助我。谢谢!

你的问题是,它正在清除矩形的时刻,它被绘制。

你需要让函数在绘制和清除之间交替,以便注意到任何东西。

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/