我正在使用Raphaeljs 2.1.2版。我基于以下值创建了一个bezier曲线路径:
M1052,141T1186,63T1281,206T1019,241
这里的重要部分不是值而是命令:我使用T
SVG命令在点之间创建曲线。屏幕上的路径显示正常,以曲线连接点。但是,当我使用函数getPointAtLength
在这一行上得到一个点时,我得到一个关于路径在我使用L
命令而不是T
时的样子的点;换句话说,我得到的点出现在连接上面各点的假想直线上,而不是屏幕上出现的曲线上的点。
我简化了产生问题的代码部分,现在简化为以直线为曲线的“发光”部分,同时以bezier曲线形式显示相同的路径:
var r = Raphael('homeTop');
var animationPath = r.path("M1052,141T1186,63T1281,206T1019,241");
animationPath.glow();
现在这个小提琴上的代码可以正常工作......这就是我不理解的,为什么完全相同的代码在其他地方不起作用......!
答案 0 :(得分:1)
这是图书馆的错误,您从master
branch下载的脚本是affected,但v2.1.2
branch上的脚本是fine。此外,在旧版本,例如2.1.0上,问题没有出现。
那么,为什么master
被打破了?罪魁祸首是commit ad15a1c,旨在解决bug #629问题,这是StackOverflow首次遇到的问题。问题是修补程序未完成,已修复commit 3bc12c3上的https://raw.github.com/DmitryBaranovskiy/raphael/v2.1.2/raphael-min.js。
因此,使用网址{{3}}处的脚本应该可以。