Использование функции canvas «strokeRect» со свойством shadowBlur заполнит прямоугольный диапазон - PullRequest
1 голос
/ 31 марта 2012

Я использую следующий код для рисования полого прямоугольника.

ctx = canvas.getContext("2d");
ctx.shadowOffsetX = 1;
ctx.shadowOffsetY = 1;
// ctx.shadowBlur    = 1;
ctx.strokeStyle = '#f00'; 
ctx.lineWidth   = 1;
ctx.strokeRect(x, y, w,h);

Все хорошо.Но когда я устанавливаю свойство ctx shadowBlur, прямоугольник заполняется.И это нормально в Firefox.enter image description here

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Вам понадобится восстановить контекст, когда вы сделаете еще один штрих.

ctx = canvas.getContext("2d");

ctx.save();
ctx.shadowOffsetX = 1;
ctx.shadowOffsetY = 1;
ctx.shadowBlur    = 1;
ctx.strokeStyle = '#f00'; 
ctx.restore();

ctx.lineWidth   = 1;
ctx.strokeRect(x, y, w,h);

Или просто установите shadowBlur на ноль после того, как вы закончите штрих, который хотите смазать.

0 голосов
/ 01 июня 2012

Я сообщил об ошибке в коде Google.Решением является изменение ширины линии от 1 до 1,1.И это работает.

Получить более подробную информацию можно по адресу:

Хром Выпуск 121251

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...