Javascript SVG对象不是';不要回到初始位置

Javascript SVG对象不是';不要回到初始位置,javascript,svg.js,Javascript,Svg.js,我试图在一个简单的块上循环一系列动画。然而,我不能使我的区块回到它原来的位置 var draw=SVG('draw')。大小(300300); var rect=draw.rect(50,50).attr({fill:'#a3c'}); 函数循环(obj){ 物体旋转(0)。移动(10,10) .设置动画(500“>”)。旋转(50) .animate(200,“在svg.js中有一个序列循环不是出于好的原因而实现的。但是,您的方法是完全有效的,并且当您想要循环多个序列时,该方法是可行的 请注

我试图在一个简单的块上循环一系列动画。然而,我不能使我的区块回到它原来的位置

var draw=SVG('draw')。大小(300300);
var rect=draw.rect(50,50).attr({fill:'#a3c'});
函数循环(obj){
物体旋转(0)。移动(10,10)
.设置动画(500“>”)。旋转(50)

.animate(200,“在svg.js中有一个序列循环不是出于好的原因而实现的。但是,您的方法是完全有效的,并且当您想要循环多个序列时,该方法是可行的

请注意,与
rotate(0)
一起使用的
absolute transformations
非常不准确。这是由于一般转换的性质造成的,没有bug或其他问题


因此,如果您想正确地重置转换,请使用
untransform()
而不是
rotate(0)
,它应该按照预期工作。

在svg.js中实现序列循环不是有充分的理由的。但是,您的方法是完全有效的,并且是在您想要循环多个序列时应该采取的方法

请注意,与
rotate(0)
一起使用的
absolute transformations
非常不准确。这是由于一般转换的性质造成的,没有bug或其他问题


因此,如果要正确重置转换,请使用
untransform()
而不是
rotate(0)
,它应该能按预期工作。

谢谢你的问题@Hankofficer。正如@Fuzzyma所说,你需要取消转换动画中添加的转换。不幸的是,这没有文档记录,但我们正在进行更新

我们对动画进行垃圾收集以避免无意中的内存泄漏,这与jQuery处理动画的方式类似。因此该方法仅适用于最后一个动画。将来我们可能会提供
.loopAll()
方法,但这仍处于讨论阶段

以下是一个工作示例:

“严格使用”
var draw=SVG(“绘图”)。大小(300300)
var rect=draw.rect(50,50).attr({fill:'#a3c'})
循环(rect)
函数循环(obj){
对象未翻译()
.设置动画(500“>”)。旋转(50)
.设置动画(200“)。旋转(0)。移动(10,10)
.在(函数()之后{
动画循环(本)
})
}
#绘图{
边框样式:实心;
边框宽度:2倍;
边框颜色:紫色;
宽度:300px
}

谢谢你的问题@Hankofficer。正如@Fuzzyma所说,你需要取消转换动画中添加的转换。不幸的是,这没有文档记录,但我们正在进行更新

我们对动画进行垃圾收集以避免无意中的内存泄漏,这与jQuery处理动画的方式类似。因此该方法仅适用于最后一个动画。将来我们可能会提供
.loopAll()
方法,但这仍处于讨论阶段

以下是一个工作示例:

“严格使用”
var draw=SVG(“绘图”)。大小(300300)
var rect=draw.rect(50,50).attr({fill:'#a3c'})
循环(rect)
函数循环(obj){
对象未翻译()
.设置动画(500“>”)。旋转(50)
.设置动画(200“)。旋转(0)。移动(10,10)
.在(函数()之后{
动画循环(本)
})
}
#绘图{
边框样式:实心;
边框宽度:2倍;
边框颜色:紫色;
宽度:300px
}


非常感谢!我是SVG新手,所以有很多东西需要探索,特别是动画。如果能看到更多的例子,那就太好了。:)当然。我们的文档路线图上有更多的例子;@RmiTtro刚刚为
.loopAll()做了概念证明
method;非常感谢!我是SVG新手,所以有很多东西需要探索,尤其是动画。如果能看到更多的例子,那就太好了。:)当然。我们的文档路线图上有更多的例子;@RmiTtro刚刚为
.loopAll()
方法做了概念证明;