В приведенном ниже коде второй fillStyle
переопределяет цвет, указанный в первом, если я использую rect()
, а затем fill()
в обоих местах (т.е. оба прямоугольника зеленые), но работает как ожидалось (т.е. первый прямоугольник синий, а второй зеленый), если я изменил первый 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