fabri c js установить ноль тени после рендера холста - PullRequest
0 голосов
/ 21 февраля 2020

Я устанавливаю тень на прямоугольник Фабри c js, используя

o.setShadow("1px 1px 15px yellow");

Теперь тень установлена ​​на соответствующий прямоугольник, где o - текущий объект. Но я регенерирую прямоугольник, используя тайм-аут через каждые 30 секунд генерируется новый прямоугольник, но тень все еще остается на старом месте, поэтому, если у прямоугольника нет тени, когда прямоугольник восстанавливается, тень все еще там, но в идеале все тени должны быть удалены.

Я попытался

o.setShadow(null) and o.setShadow(0px 0px 0px) and canvas.renderAll()

Но это не работает, все новый прямоугольник не имеет свойства тени, имеет тень с нулем, но тень все еще там, мне нужно полностью удалить тень в следующей итерации SetTimeout. Я использую версию 3.4.0 Fabri c js.

1 Ответ

0 голосов
/ 21 февраля 2020

Do obj.shadow = null;, за которым следует canvas#requestRenderAll, это удалит тень от объекта.

DEMO

const canvas = new fabric.Canvas('canvas');
const square = new fabric.Rect({
  width: 50,
  height: 50,
  left: 50,
  top: 50,
  fill: '#000'
});
square.setShadow("1px 1px 15px yellow");
canvas.add(square);
setTimeout(() => {
  square.shadow = null;
  //or square.setShadow(null);
  canvas.requestRenderAll();
},1500);
canvas {
  border : 1px solid;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.4.0/fabric.js"></script>
<canvas id="canvas"></canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...