Raphael.js图片填充不经常更新

时间:2012-07-12 12:20:43

标签: javascript raphael

我在Raphael中有一个Paper.path(),它充满了简单的纹理:

var fill = screen.path(Iso.topFacePath(top)).attr({
  fill: 'url(http://www.example.com/mytexture.jpg)',
});

用户可以通过拖放更改路径。为此,我使用Element.drag()来绑定处理程序。

我现在遇到的问题是,在调用onmove - 处理函数时,将重新计算有问题的元素,并且必须再次绘制。显然这对于​​raphael来说“太多”了,填充模式会随机消失(闪烁)并在一段时间之后再次出现(最近onend)。

我使用的实际代码有点太多了,不能在这里发布,但我建立了一个 fiddle ,你可以看到正在发生的事情(你可以拖动四边形的上边) 。

对此有简单的解决方法吗?

我习惯画布比raphael更多(实际上这是我第一次使用raphael)所以也许我每次重新绘制所有内容的方法都是错误的?

编辑:我刚刚发现这似乎与浏览器有关。 Chrome和Firefox会产生闪烁,Safari似乎可以很好地完成所有工作。

1 个答案:

答案 0 :(得分:2)

这似乎是缓存问题(raphael.js 缓存位图填充并将在每次更改时重新加载)并且由 this pull request on GitHub修复(对我而言) 即(截至2012年8月14日)仍有待审核。

由于make文件指向本地和/或不存在的文件,Raphael很难/不可能构建自己,但您可以手动连接所有内容,修改构建脚本或使用中使用的修改后的构建the example 以获取修复程序。

让我们希望它能够进入拉斐尔的未来发行版。