2011-10-07 42 views
0

我在JSFL中編寫導出程序,將Flash動畫導出爲可在自定義播放器中重播的格式。出口商基本上遍歷時間軸和每個關鍵幀的所有元素,並寫出有關元素的信息,包括其位置,旋轉,比例等。JSFL - Element.rotation是NaN

我有一個問題, ,它以NaN出現。這最常見的原因是如果一個元素已被翻轉(修改 - >變換 - >翻轉水平),但我認爲它也可能發生在其他情況下。直到現在我已經通過寫出someElement.skewX而不是someElement.rotation來解決問題,如果someElement.rotation是NaN(請參閱here瞭解我的一些相關代碼,該代碼也嘗試檢測是否發生翻轉)。

至今爲止,因爲在這些情況下,skewX的值與我期望的旋轉值相同。但是現在我希望出口商能夠處理偏斜以及旋轉的出口元素,所以我真的需要有適當的旋轉值。我如何從Flash中提取正確的旋轉值?有什麼我可以做的,以獲得矩陣的旋轉值,或停止旋轉從NaN首先?

+1

你應該看看[Grapefrukt資產expoter(http://prototyprally.com/introducing-the-grapefrukt-asset-exporter/),它導出所有你想要的信息! – RasmusWL

回答

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; 

不知道如果對象是歪斜的這個考慮。

extract angle from rotation matrix (inkscapeforum.com)