首页 > 解决方案 > 如何在 Konva 中将 globalCompositeOperation 用于具有缩放的多个形状

问题描述

我正在尝试在 Konva 中创建具有内边框的多边形。

我发现这个例子globalCompositeOperation在 Konva 中效果很好,只要只有一个形状。一旦我尝试添加第二个形状,这显然不再起作用,第一个形状消失了。

如果我要为每个形状使用不同的图层,它会起作用,但当然这不是一个可以很好扩展的解决方案。

我尝试使用示例中的临时图层,但无法使其正常工作。

所以我发现了这个使用的例子group.cache(),它工作得很好......直到我尝试缩放舞台,此时我必须刷新缓存,否则我只能得到放大的缓存,这看起来很糟糕。

这个代码框说明了这个问题。(请注意,这使用了简单的三角形,实际上我使用的是任意多边形)

那么有没有办法使用缓存进行缩放?或者globalCompositeOperation在同一层中使用多个形状的更好方法?或者一些替代解决方案?

标签: konvajs

解决方案


我找到了解决方案:调用group.cache({pixelRatio: scaleFactor}). 我更新了沙盒。

不知道,如果这是最好的解决方案,但它有效。


推荐阅读