JSFL - Element.rotation является NaN - PullRequest
0 голосов
/ 07 октября 2011

Я пишу экспортер в JSFL, чтобы экспортировать Flash-анимацию в формат, который можно воспроизвести в пользовательском проигрывателе.Экспортер в основном перебирает временную шкалу и все элементы каждого ключевого кадра и записывает информацию об элементе, включая его положение, поворот, масштаб и т. Д.

У меня проблема с получением поворота изопределенные элементы, это выходит как NaN.Наиболее распространенной причиной этого является переворот элемента (Modify-> Transform-> Flip Horizontal), хотя я думаю, что это может произойти и в других обстоятельствах.До сих пор я обходил эту проблему, выписывая someElement.skewX вместо someElement.rotation, если someElement.rotation имеет значение NaN (см. здесь для некоторого моего связанного кода, который также пытается обнаружить, если переворачиваетсяпроизошло).

До сих пор это работало, потому что в этих случаях значение skewX совпадает со значением, которое я ожидаю для поворота.Но теперь я хочу, чтобы экспортер мог обрабатывать экспортируемые элементы, которые перекошены и повернуты, поэтому мне действительно нужно иметь правильные значения для поворота.Как я могу извлечь правильные значения вращения из Flash?Есть ли что-то, что я могу сделать, чтобы вывести значения вращения из матрицы, или вообще не дать вращению быть NaN?

1 Ответ

0 голосов
/ 21 июня 2012

Я нашел способ получить угол поворота от матрицы объекта.

element = someobject;
//Angle in radians
var angle = Math.atan2(element.matrix.b, element.matrix.a);
//convert to degrees
var degrees = angle * 180 / Math.PI;

Я не уверен это учитывается, если объект перекошен.

извлечение угла из матрицы вращения (inkscapeforum.com)

...