0

我正在用 JSFL 编写一个导出器,将 Flash 动画导出为可以在自定义播放器中重放的格式。导出器基本上遍历时间线和每个关键帧的所有元素,并写出有关元素的信息,包括它的位置、旋转、缩放等。

我在从某些元素中旋转时遇到问题,它以 NaN 的形式出现。最常见的原因是元素被翻转(修改->变换->水平翻转),尽管我认为它也可能发生在其他情况下。到目前为止,如果 someElement.rotation 为 NaN,我已经通过写出 someElement.skewX 而不是 someElement.rotation 来解决问题(有关我的一些相关代码,请参见此处,它也尝试检测是否发生翻转)。

到目前为止,这一直有效,因为在这些情况下,skewX 值与我期望的旋转值相同。但是现在我希望导出器能够处理倾斜和旋转的导出元素,所以我真的需要有适当的旋转值。如何从 Flash 中提取正确的旋转值?我可以做些什么来从矩阵中获取旋转值,或者首先阻止旋转为 NaN?

4

1 回答 1

0

我找到了一种从对象矩阵中获取旋转角度的方法。

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)

于 2012-06-21T06:19:49.453 回答