我确实有一个Paper.path()
充满简单纹理的拉斐尔:
var fill = screen.path(Iso.topFacePath(top)).attr({
fill: 'url(http://www.example.com/mytexture.jpg)',
});
用户可以通过拖放更改路径。为此,我使用Element.drag()
绑定处理程序。
我现在遇到的问题是,虽然onmove
调用了 -handler 函数,但有问题的元素将被重新计算并且必须再次绘制。显然这对拉斐尔来说“太多了”,填充图案将随机消失(闪烁)并在一段时间后再次出现(最迟onend
)。
我使用的实际代码有点过多,无法在此处发布,但我构建了一个小提琴,您可以在其中看到发生了什么(您可以拖动四边形的上边)。
有一个简单的解决方法吗?
我习惯于画布而不是拉斐尔(实际上这是我第一次真正使用拉斐尔)所以也许我每次改变时重绘所有东西的方法是完全错误的?
编辑:我刚刚发现这似乎也与浏览器相关。Chrome 和 Firefox 会产生闪烁,而 Safari 似乎一切正常。