我正在用JSFL编写一个导出程序,将Flash动画导出为可以在自定义播放器中重放的格式。出口商基本上遍历时间线和每个关键帧上的所有元素,并写出有关元素的信息,包括元素的位置、旋转、缩放等。
我有一个问题,让旋转的某些元素,它的结果是NaN。最常见的原因是如果一个元素已经翻转(修改->Transform->Flip水平),尽管我认为它也可以在其他情况下发生。到目前为止,我通过编写someElement.skewX而不是someElement.rotation (如果someElement.rotation是NaN )来解决这个问题(有关代码,请参阅这里,该代码还试图检测翻转是否发生)。
到目前为止,这是因为在这些情况下,skewX值与我期望的旋转值相同。但是现在我希望出口商能够处理导出元素,这些元素是倾斜的,也是旋转的,所以我真的需要有适当的旋转值。如何从Flash中提取适当的旋转值?我能做些什么来从矩阵中获取旋转值,还是从一开始就停止旋转成为NaN?
发布于 2012-06-21 06:19:49
我找到了一种从物体矩阵中得到旋转角度的方法。
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)中提取角度
https://stackoverflow.com/questions/7687013
复制相似问题