2010-06-29 118 views
3

我正在使用Raphael库创建SVG对象。如何为'Raphael'画布设置动画?

要初始化SVG形状和创造的一切内部的画布,我用下面的行如文档中表示:

var paper = Raphael(10, 50, 320, 200); 

我现在想动画里面的纸张,一切,只是像我将其动画已追加到纸在下面的满耳的形状:

var firstShape = paper.rect(x, y, width, height); 
firstShape.animate({x: 100}, 500, "<"); 

当我尝试用纸张如类似:

paper.animate({x: 100}, 500, "<"); 

我收到错误'paper.animate is not a function'。

这里发生了什么,我该如何解决这个问题?

回答

3

你的右括号序错误

变化

paper.animate({x: 100, 500, "<")}; 

paper.animate({x: 100}, 500, "<"); 

UPDATE

从文档,它似乎并不认为animate可以称为直接在paper,但仅适用于子形状切出的画布 - 这就是为什么firstshape.animate工作

+0

对不起,我的错。我在问题中输入了新的内容,但是在我的实际代码中没有出现该错误。我已经更新了这个问题来反映。 – 2010-06-29 10:11:53

+0

杰克 - 查看我的更新 – JoseK 2010-06-29 10:21:59

0

你不能动画绘图板...只有里面的形状..

纸是你的绘图板..而firstShape是在板内创建的形状。

+0

我假设主要的“绘图板”只是SVG元素。你不能动画/转换整个SVG对象吗? – 2010-06-29 10:25:37

+0

@Jack,我的理解是'Raphael(..)'返回一个画布对象。其余的都是引用这个画布的对象,并且可以在它内部进行动画..我可能错了,但是.. – 2010-06-29 12:34:12

9

您不能为纸质对象设置动画效果。纸张没有动画属性。但是,您可以将所有元素合并到set中,然后对其进行动画处理。

+5

我可以借此机会说:“感谢Raphaël”=) – 2010-07-11 11:10:01