Вопрос новичка в анимации Рафаэля

Я новичок в Рафаэле. Тут у меня возникла проблема.

Я определил путь:

var c = paper.path('M '+p1.x+' '+p1.y+'L '+p2.x+' '+p2.y);

где p1,p2 — две конечные точки пути.

Я хотел бы иметь функцию анимации, которая при щелчке мыши по пути p2 свернется до p1, и, наконец, p2 будет «скрываться p1», когда они перекрываются. Как это сделать?


person Mellon    schedule 31.03.2011    source источник


Ответы (1)


Насколько я знаю, вы не можете анимировать свойства пути. Лучше всего перерисовать путь с разными свойствами. Таким образом, вы должны «анимировать» переменные для p1 и перерисовать путь с этими переменными.

Вам нужна функция таймера, которая изменяет параметры p1. Так что каждые 0,1 секунды в примере параметры p1 приближаются к параметрам p2.

var p1x = 10;
var p1y = 10;

var p2x = 20;
var p2y = 20;

var t = setTimeout("timer()", 100);
var p = paper.path(...);

function timer()
{
   p1x++;
   p1y++;

   p.remove();
   p = paper.path(with new variables);

   if(p1x == p2x) clearTimeout(t);
}

Кто-то еще борется с этим: http://japhr.blogspot.com/2010/09/cant-animate-raphael-path-positions.html

person thgie    schedule 11.04.2011