拉斐尔:把模糊的点带到前面

时间:2012-03-31 12:32:19

标签: javascript raphael

我在画布上有一堆拉斐尔圆形物体,在很多情况下它们重叠,有时一个较小的圆圈完全覆盖在它上面的一个较大的圆圈。在这样的情况下,我希望将较小的圆圈向前移动 - 或者更准确地说,当它包含的坐标被覆盖时。

我一直在尝试使用getElementsByPoint()方法作为mousemove处理程序的一部分,但我发现它的性能非常低迷。

在拉斐尔画布上展示遮盖或模糊点的任何提示或技巧?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个覆盖蒙版作为透明rect,覆盖整个画布区域,其中包含每个形状的路径坐标,并将形状作为处理程序附加到其中。

为此,您需要为要触发的叠加蒙版创建自定义事件,并为要捕捉的形状,让我们称之为“shape-coor-over”和“shape-coor-out”。

这个掩码将充当调解者:它将监听鼠标移动并在某些条件下(如果鼠标已进入路径区域等)触发shape-coor-overshape-coor-out自定义事件,以及何时注册的形状会得到通知,他们的处理程序会相应地调用形状的toFront()toBack()