我在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似乎可以很好地完成所有工作。
答案 0 :(得分:2)
这似乎是缓存问题(raphael.js 不缓存位图填充并将在每次更改时重新加载)并且由 this pull request on GitHub修复(对我而言) 即(截至2012年8月14日)仍有待审核。
由于make文件指向本地和/或不存在的文件,Raphael很难/不可能构建自己,但您可以手动连接所有内容,修改构建脚本或使用中使用的修改后的构建the example 以获取修复程序。让我们希望它能够进入拉斐尔的未来发行版。