【问题标题】:Raphael.js image fill not updating constantlyRaphael.js 图像填充不会不断更新
【发布时间】:2012-07-12 12:20:42
【问题描述】:

我在 Raphael 中确实有一个 Paper.path(),其中填充了简单的纹理:

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

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

我现在遇到的问题是,当调用onmove-handler 函数时,相关元素将被重新计算并且必须再次绘制。显然这对 raphael 来说“太多”了,填充图案会随机消失(闪烁)并在一段时间后再次出现(最迟 onend)。

我使用的实际代码有点过多,无法在此处发布,但我构建了一个 fiddle,您可以在其中看到发生了什么(您可以拖动四边形的上边)。

有没有简单的解决办法?

我习惯于画布比拉斐尔更多(实际上这是我第一次真正使用拉斐尔)所以也许我每次改变时重绘所有东西的方法是完全错误的?

编辑:我刚刚发现这似乎也与浏览器相关。 Chrome 和 Firefox 会产生闪烁,而 Safari 似乎一切正常。

【问题讨论】:

    标签: javascript raphael


    【解决方案1】:

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

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

    让我们希望它能在 Raphael 的未来版本中找到自己的方式。

    【讨论】:

    • 非常感谢您的发现!几天来,我一直在尝试找到解决方法,现在使用示例链接中的修改后的脚本,一切都很好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多