画布strokeStyle不能可靠地改变?

Jor*_*ren 4 javascript canvas

这是我的代码.出于某种原因,它绘制的线条主要是灰色.

看起来有些线条是在两个笔划样式之间绘制的,即使我的绘制调用实际上没有重叠.一些线是白色的,内部灰色.我的白线比我的灰线厚,所以显然它画的是两条线.画布绘制调用是异步还是其他什么?

知道为什么吗?

        for (var i=0; i<minor_lanes.length; i++) {
            connect(minor_lanes[i], "#333", 3);
        }

        for (var i=0; i<major_lanes.length; i++) {
            connect(major_lanes[i], "#fff", 4);
        }

        for (var i=0; i<limited_lanes.length; i++) {
            connect(limited_lanes[i], "#FFFF99", 2);
        }

        function connect(id, color, width) {
            if (!id) {
                return;
            }
            ctx.lineWidth = width;
            ctx.strokeStyle = color;
            $('#' + id).each(function() {
            var laneX = parseInt($(this).css('left')) + $(this).width()/2;
            var laneY = parseInt($(this).css('top')) + $(this).height()/2;
            ctx.moveTo(x,y);
            ctx.lineTo(laneX, laneY);
            ctx.stroke();
            });
        }
Run Code Online (Sandbox Code Playgroud)

los*_*yzd 10

我想你忘记了

ctx.beginPath();
// draw path
// stroke
ctx.closePath();
Run Code Online (Sandbox Code Playgroud)