Как вернуть анимацию на остановке в исходное состояние в Рафаэле? - PullRequest
0 голосов
/ 07 января 2012

Что я хочу сделать, это когда я останавливаю анимацию, чтобы сбросить начальное состояние анимированного объекта.Я хочу сделать это, потому что, когда я останавливаю его сейчас (Element.stop([anim])), он замирает в своей текущей точке (скажем, наполовину в состоянии транпаранта), и когда я играю его снова, анимация начинает повторяться с этого места, а не с начала.

Вот моя анимация Raphael.animation({opacity: 0}, 500, "<>").repeat(Infinity).

Я задавал этот вопрос в группе новостей Raphael 3 недели назад, но не получил никакого ответа.

Спасибо, Божидарц

1 Ответ

0 голосов
/ 08 января 2012

Я не утверждаю, что это самое элегантное, но в прошлом я делал такие вещи, просто добавляя пару дополнительных атрибутов к элементу при его создании. В этом случае я бы просто добавил атрибут 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/

...