2010-12-14 2 views
0

Предположим, у меня есть эллипс, который я хотел оживить вдоль пути p.RaphaelJS - Нахождение точки в пути во время анимации

Если я начал анимировать эллипс, но потом решил остановить анимацию, можно ли каким-либо образом перезапустить анимацию из текущей точки? Я не смог найти способ определить текущую точку эллипса вдоль пути после остановки анимации.

Вот моя анимация кода (все стандартная):

e.attr({ rx: 15, ry: 5 }).animateAlong(p, 15000, true, function() { 
        e.attr({ rx: 10, ry: 10 }); 
        clicked = false; 
       }); 

ответ

1

Как насчет определения последних точек вне используя onAnimate?

var lastX = 15, lastY = 5; 
e.onAnimation(function() { 
    lastX = e.attr('rx'); 
    lastY = e.attr('ry'); 
}); 

e.attr({ rx: lastX, ry: lastY }).animateAlong(p, 15000, true, function() { 
    e.attr({ rx: 10, ry: 10 }); 
    clicked = false; 
}); 

Так что, если вы запустите этот код несколько раз, внутри функции или что-то, вы Ellipse начнется не в 15, 5, но в последний момент в анимации (прежде чем она была прервана).

Это вы имели в виду?