如果你定义了一个阴影,那么它将应用于画布上的所有“图形”(这是它应该做的)。
样本:http://flanvas.com/development/flanvas/test.html
有没有人知道在使用阴影后关闭它的最佳做法?我将shadowColor设置为“rgba(0,0,0,0)”,这是一个无alpha的黑色。我肯定有更好的办法。
案例示例:文字也有了影子。我现在用的是无阿尔法黑来对付这个。http://flanvas.com/development/flanvas/examples/filters-dropShadowFilter.html
5条答案
按热度按时间ws51t4hk1#
通过使用
save
、translate
和restore
,您可以执行任务而无需担心样式更改,例如。这里
X
和Y
是你想要画的坐标,你可以相对于坐标0,0
来画。此方法解决了缓存和恢复以前的样式/值的问题,并且在处理渐变时也非常有用,因为它们总是相对于原点
(0,0)
绘制vkc1a9a22#
(EDIT:哎呀!我看到你已经用0阿尔法黑做了什么。)
这就是你一直在寻找的:
3lxsmp7m3#
通常,在更改这些“全局”属性之前存储其旧值并在以后使用此存储值来恢复它是一个好主意。范例:
qij5mzcb4#
我创建了一个函数,如果需要的话,我可以调用它来重置阴影。
zu0ti5jz5#
如果你在一个新的画布上下文上
console.log(ctx.shadowColor, ctx.shadowBlur)
,而不被修改,你可以看到颜色的默认值为rgba(0, 0, 0, 0)
,模糊的默认值为0
。执行
ctx.save()
和ctx.restore()
也可以做到这一点,be的开销更大,因为它必须为您执行的每次保存保存保存所有上下文。所以你做得对,技术上来说没有更好的方法了。