2012-01-07 98 views
0

我想要做的是当我停止动画到 重置动画对象的初始状态。我想这样做,因为当我现在停止它(Element.stop([anim]))它冻结在它的当前点(让我们说一半tranperant),当我再次播放时,动画开始从这个地方重复,而不是从一开始。我的动画Raphael.animation({opacity: 0}, 500, "<>").repeat(Infinity)如何将停止时的动画重置为Raphael的初始状态?

3个星期前,我在Raphael新闻组中询问了这个问题,但我没有收到任何答案。

感谢, bozhidarc

回答

0

我不建议这是最优雅的,但在过去,我只需在创建它添加一些额外的属性与元素做了这样的事情。在这种情况下,我只需添加一个baseAttrs属性,它保存的设置对应的原始对象:

var paper = Raphael('canvas', 500, 500); 

    var circle = paper.circle(320, 240, 60); 
    circle.baseAttrs = {fill:'yellow'}; // add to the elem 
    circle.attr(circle.baseAttrs); 

    circle.animate({fill: "blue"}, 1000, 
        function(){ 
         this.attr(this.baseAttrs); 
        }); 

在上述例子中,从动画回调设置圆的属性的所述值baseAttrs元素在动画完成时。不管发生了什么,baseAttrs将始终与圆相关。 http://jsfiddle.net/UVPeh/