Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何组合拉斐尔动画?_Javascript_Raphael - Fatal编程技术网

Javascript 如何组合拉斐尔动画?

Javascript 如何组合拉斐尔动画?,javascript,raphael,Javascript,Raphael,这个想法是让两个拉斐尔物体一起移动,而其中一个在旋转。 在下面的示例中,我创建了两个动画-一个用于平移,一个用于旋转,但我没有运气让它们工作 var paper = Raphael(0,0,800,400); var body = paper.rect(10,10,50,30); var leg = paper.rect(30,35,10,30); // translation - should be applied to both body and leg var translatio

这个想法是让两个拉斐尔物体一起移动,而其中一个在旋转。 在下面的示例中,我创建了两个动画-一个用于平移,一个用于旋转,但我没有运气让它们工作

var paper = Raphael(0,0,800,400);
var body  = paper.rect(10,10,50,30);
var leg   = paper.rect(30,35,10,30);

// translation - should be applied to both body and leg
var translation_anim = Raphael.animation( {transform: "t300,0"}, 2000 );

// rotation - to be applied to the leg only
var rotation_anim = Raphael.animation( {
    "50%":  { transform: "R" +    (45).toString() },
    "100%": { transform: "R" + (-1*45).toString() }
}, 2000);

body.animate(translation_anim);
leg.animateWith(body,rotation_anim,translation_anim);
小提琴:小提琴:

以下是更新的代码:

var paper = Raphael(0,0,800,400);
var body  = paper.rect(10,10,50,30);
var leg   = paper.rect(30,35,10,30);

var translation_anim = Raphael.animation({transform: "t300,0"}, 2000);

var rotation_anim = Raphael.animation({
    "50%": { transform: "r45 T150,0"},
    "100%": { transform: "r-45 T300,0"}
}, 2000);

body.animate(translation_anim);
leg.animateWith(body,translation_anim,rotation_anim);

最后一行代码中有一个小语法错误

leg.animateWith(身体、旋转动画、平移动画)


根据的正确语法为:

element.animateWith(元素到同步,动画到同步,动画)

->
leg.animateWith(身体、平移动画、旋转动画)

希望这有帮助。

提琴:

以下是更新的代码:

var paper = Raphael(0,0,800,400);
var body  = paper.rect(10,10,50,30);
var leg   = paper.rect(30,35,10,30);

var translation_anim = Raphael.animation({transform: "t300,0"}, 2000);

var rotation_anim = Raphael.animation({
    "50%": { transform: "r45 T150,0"},
    "100%": { transform: "r-45 T300,0"}
}, 2000);

body.animate(translation_anim);
leg.animateWith(body,translation_anim,rotation_anim);

最后一行代码中有一个小语法错误

leg.animateWith(身体、旋转动画、平移动画)


根据的正确语法为:

element.animateWith(元素到同步,动画到同步,动画)

->
leg.animateWith(身体、平移动画、旋转动画)


希望这有帮助。

我尽了最大努力来解决这个问题,看看这个答案,看看它是否有帮助-@Neil,我确实花了很长时间来研究答案和相应的小提琴,但在这种情况下,两个动画的参数都是一样的。如果你还想让重量围绕它的中心旋转,并且与手臂同步移动,这将是和我一样的问题。我尽了最大努力来解决这个问题,看看这个答案,看看它是否有帮助-@Neil,我确实花了相当长的时间看答案和相应的小提琴,但在这种情况下,两个动画的参数相同。如果你想让重量围绕它的中心旋转,除了与手臂同步移动之外,这和我的问题是一样的。