【发布时间】:2020-10-27 18:49:55
【问题描述】:
在下面的代码中,如果我在两个地方都使用rect() 和fill()(即两个矩形都是绿色),则第二个fillStyle 会覆盖第一个指定的颜色(即,两个矩形都是绿色)但按预期工作(即如果我将第一个 rect() 更改为 fillRect(),则第一个矩形为蓝色,第二个为绿色。为什么会这样?我以为fillRect() 只是rect() 然后是fill(),对吧?
ctx.translate(canvas.width/2, canvas.height/2);
ctx.fillStyle = "#5A9BDC";
ctx.fillRect(0, 0, rectWidth, rectHeight);
// ctx.rect(0, 0, rectWidth, rectHeight);
// ctx.fill();
ctx.translate(-canvas.width/2, -canvas.height/2);
ctx.fillStyle = "#31B131";
ctx.rect(0, 0, rectWidth, rectHeight);
ctx.fill();
在 Chrome 中测试 | Fiddle
【问题讨论】: