小编Dav*_*ord的帖子

清除HTML5 Canvas中的圆形区域

看起来从画布中清除区域的唯一方法是使用clearRect()命令 - 我需要清除一个圆圈(我在填充的画布上掩盖区域,在这个特定情况下指向灯光)并尽管所有尝试它似乎不可能.

我尝试绘制一个alpha值为0的圆圈,但除非alpha更高(这与点相反:P),否则不会出现任何内容 - 我假设因为contex.fill()将其绘制为添加而不是替换.

关于我如何能够(快速)清除圆圈以进行掩模的任何建议?

javascript html5 canvas html5-canvas

32
推荐指数
4
解决办法
2万
查看次数

强制画布更新

有没有办法强制画布更新?我想显示加载消息,但游戏会在显示之前锁定加载.在调用加载函数之前,我觉得我需要告诉画布"现在画画",但也许有另一种方式......

编辑:

好吧,为了清楚我已经写了一个非常小的脏脚本(我可以在我的茶歇中做到最好:P)来展示我想要过来的东西.这里:

<html>
<head>
    <title>test page</title>
</head>

<body onload="init();">
    <canvas id="cnv" width="300" height="300">
        canvas not supported.<br/>
    </canvas>
</body>
</html>

<script type="text/javascript">  

    var ctx;

        function init()
    {
        var canvas = document.getElementById('cnv');
        ctx = canvas.getContext('2d');

        ctx.fillStyle = "rgb(255, 0, 0)";
        ctx.fillRect(0,0,300,300);

        FakeLoad();

        ctx.fillStyle = "rgb(0, 255, 0)";
        ctx.fillRect(0,0,300,300);
    }

    function FakeLoad()
    {
        var d = new Date();
        var start = d.getTime();

        while (new Date().getTime() - start < 5000)
        {
            //emulate 5 secs of loading time
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

现在的想法是脚本应绘制一个红色方块,以显示其"加载"和一个绿色方块完成后.但是如果你将它复制到一个html文件中,你会看到暂停5秒然后绿色出现,从不出现红色.在我脑海里,我想要一些像ctx.Refresh(); 我画绿色方块后告诉它"现在更新!不要等!" 但从回答来看,这不是解决问题的方法. …

javascript html5 canvas

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

canvas ×2

html5 ×2

javascript ×2

html5-canvas ×1