问题描述
|
我正在使用raphael做一些SVG动画,但似乎无法使animatealong函数正常工作。参照未压缩的拉斐尔代码的3450行,我继续收到错误“ \ attrs [0]未定义\”。
基本上,我创建了一个具有给定中心的圆,然后希望对该路径进行动画处理。这是简单的代码:
var circle = paper.circle(circleCenterX,circleCenterY,circleRadius);
然后,我克隆一个图像(因为我计划在此路径上放置许多此类图像)并将其放置在圆的边缘:
var wheelClone = wheel.clone();
var wheelRadius = parseInt(wheel8ImageWidth/2);
wheelClone
.translate((circleCenterX + circleRadius)-3,circleCenterY-wheelRadius);
我之前用circleCenterX = circle.attr(cx);初始化了circleCenterX;
正确放置图像后,所有这些都可以正常工作-但在animatealong上会出错。
我研究了尽可能多的示例,并对文档进行了剖析,但是无法理解。
因此,我只是尝试调用该函数,但却不了解文档所指的是什么。该文档在路径周围设置了一个圆点,但引用了两个变量-rx和ry(我无法逾越)-都在init函数中,然后在回调中。
这就是我所拥有的--rx和ry组成的地方,因为我不知道它们指的是什么。
var wheelAttr = {
rx: 5,ry: 3
};
wheelClone.attr(wheelAttr).animatealong(circle,2000,true,function() {
wheel.attr({rx: 4,ry: 4});
});
目前,我当前的jsfiddle有点混乱,我可以清理它,但是我怀疑这里有些明显的东西吗?
谢谢大家
小号
解决方法
我认为圆实际上不是有效的路径(即可以传递给animateAlong()的东西)。我认为您需要创建一条圆形的路径。请参阅以下内容:
svg动画与拉斐尔一起走
希望它会有所帮助。