Я делаю анимацию в Raphael, которая включает в себя пару квадратичных линий Безье, выходящих из div и анимирующих по пути к паре дочерних элементов. Я хочу, чтобы кривые, идущие к каждому дочернему элементу, постепенно рисовали сами себя, пока не достигли конечной точки. Я обхожу это следующим образом:
1) Создайте центральный поток для всей анимации
2) В каждом кадре увеличивайте переменную currentLength на определенную величину.
3) В каждом кадре найдите текущую точку на каждой кривой с помощью getPointAtLength
4) В каждом кадре перемещайте маленькую точку в эту точку
5) В каждом кадре линия до нового положения маленькой точки - прямая линия, но кадров достаточно, чтобы конечный результат все равно выглядел красиво, квадратично и извилисто.
Все это работает как абсолютный шарм, за исключением одной вещи — getPointAtLength кажется НАМНОГО медленным. Я пробовал около 10 различных подходов к этой проблеме, и вышеупомянутое решение — самое быстрое из всех, что я придумал. Все они работают, но включение getPointAtLength делает их слишком медленными. Использование animateAlong с точкой, а затем lineTo с координатами этой точки не намного лучше, во-первых, потому что создается столько потоков, сколько есть дочерних узлов, и потому что это просто ненамного быстрее.
Пожалуйста помоги! Прочитайте мое сообщение, поймите его, помогите мне найти решение! getPointAtLength кажется слишком медленным - вызывайте его один раз в каждом кадре из 40 кадров для 7 строк, и это замедляет все. Любая помощь будет оценена по достоинству.