From 1d239b44f19f76618e65c100f02ebb8db1d14c33 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Wed, 2 Mar 2016 02:15:24 +0600 Subject: [PATCH] + frame_rate --- .../Examples/Animations/Tests/0_keyframes.fla | Bin 23432 -> 23440 bytes Assets/FlashTools/Scripts/FlashAnim.cs | 41 ++++-------------- Assets/FlashTools/Scripts/FlashAnimAsset.cs | 7 +-- .../Editor/FlashAnimFtaPostprocessor.cs | 21 ++++++--- 4 files changed, 28 insertions(+), 41 deletions(-) diff --git a/Assets/FlashTools/Examples/Animations/Tests/0_keyframes.fla b/Assets/FlashTools/Examples/Animations/Tests/0_keyframes.fla index c8a3ea34aa5eff9d50a76a013b478288cd85a9f7..bffa38b5f04e8ea2a5aec1774bc16408ce8b2786 100644 GIT binary patch delta 1350 zcmV-M1-bf&w*ip10gzjNJrqZ?Ed&4nj}ZU>4*&oFL{CjbZ)0_BWo~pXcx`O$SX+9Tt?PHLyV-1qG(-ivwM%h|Q z@Z}3DDQA^g1PcZKg-XRlmEyqZ!XZhC7IIP*BE=WR92#??R%j+gL6td4IJ&&VsOCf$ zLY66>l8jYas1-(kH;uAJd`@m?juty~tfxJU{Mhl(V$FDt{9YfUlKduQ>y01dX7kg! zTu=!M=FAPLm|C%FITN5I9DOwhz4P^7_v;ni>Ul;hI>{k)RxqO}u+Hy3*BUIT8T`Bw zqE2x^xT0r!GqR-Wdz)jE;)~2aw`U5*sovG}r=KUI6pu!K-e@!&jyv)2!?+X0!=Te2 z2T|uD^rB=GTy%TgF@FC8GM_<7b4Kn3x>{nyVA+_7 zyLp`TY2NYR)ANfSMoO$@Mn7ydl>pipysC*|isQJDuF~_If|GA_TMMaOKWOwdLRUoT zNoh7{4ylZP;%*ZAQP?V-wcwYx;L{^Zm)DnJ0Fr(j_G7;v_fNOy>`#az>?S}t!nxSY zOChuYFvVJ~A&Ek=C4 zHhWVPphF}<;^aghN~Eb7KM4*+GZb122(Ald6#fu@QP7bKsQR)uMg`@%f|kH-623If=I-leA^Hyxx!AnJwTkwd3G4D`Ows=NF- zG~hjddu)3`e%qgIOM%+x<72@_8afX2$FucT^_AJ*>ur7;y@CtqdOt?v#2b%WI|pc) zno~|Q%PhNczxu|8#p62;oVsGeK&;B?HpPHszLrGW&K|+j?{o**1TXu&AbH5*ky7x| z+@+6NKlNj7QJL)TRK(dr61g+g`^l#1zzZmUC3~`=^-_|0#WF(_b2FIlr+Il~yd+w( z?K7ns(Ww)=(tnM4L{@ct{ zdS!w{Z~XW-`7v;xIxtxawzoVq`neCyepZE@IM0Vx_k3!##}9LGJ3!x^m^FU?|Qx9OszgLrG?zVvNdve1M~hbv!4W`2Lzdi^bwOr3@1hd00IC4 z01N;J000030000B0B>+*Ze?UHaBgP+3jkwmZ*yg2E^uyV00{tdZE0*}UuSXvzO4WN z0RR910ssI20RR910<*IWsY;WZS8bEYSGoy36i2fy1ONb!lZ;qS0jHDOSV95XlO9<> z0SuF0StT2phx8Fu000100000J00000000000000006deQSwI28li*oH0m_pkT0a40 zlVn;$0oRkLT0a55ljvGO0a}wPTRbAqR{#KQX>Db6d2nS=O9ci10000E01g160{{RH ISO5S30K%bQ_y7O^ delta 1318 zcmV+>1=;$Lw*iQ^0gzjNe``0#B?JHft`PtL4*&oFL{CjbZ)0_BWo~pXcx`O$SX-0Y zHWYsEuh6K^_--&6oS9__4Kqu^ENLfw$_QHqwX)?(VuAen9?9T^WwW<-x@{*sF!)I4 z`h7Y&crf}n9f@pR(n_Ok$t(3{t5}LxTGww}ceB|zo6r$*=?0#E=ewV$SMzK|OVVML z(xl2LZnRpBN;xDK3+iN|bhiaJdWnnChUI#d;?VOjT2Z!K>HR~tmJ*zQVkPCQqAB*l zWWj%-QZZ4bIB>eKNm8PPoK%HK@rALE#+;}Xnn_VmWp)ydE-x{vInjlXWs0XHW0e+a zh0#r8tWlqn8=9kk#SR_YX*VN3c09CLGoB;A*T<+NzX{n!-qrM{pC_Xfk4D~TG#rjQ@$lV~;Q?CE1)4)Cqqv*IeiXJwXD#^UE%@}v)8+ML z7=Wf9hyB>^$NkfP4*>YMNrm zU2za#^v9ZTrgxCLp}M5SX=N6+Y$Kw{`)ji{MFBcw5+qJeG(ctWyKWANp9J1sG89@1 zNUjU##(fkHQ3Jv5g`)@$a3s%#BYYf=D10s)ao>lMce}}deP~2MFaCScI4;aN8vZRB z(bLdKZqXRH$46zLcI85Fbpq9-%J@2``&d*7iGEp12f8RmT#$THS`(VK2loU#8t>0i z5Wo`jERhp!a=N-Q~}r0q@yk+Y|Ef@wR3!^cU!cXY$t2m090g zX?{aT&jc5L(BpoL#)&r`w_X1LBvW(BX=Zt3CHI?eeAw!LBY@LTY#&6d%IP-6fLp$n zMB6?d!PD<_2epGJ`@JA}$m5Ywh|*k@k9t3iV{S2+?5|A3*+LSzGiUXKEz^MoaBxn` zfEx4~QZFT`S1dC$G53P`ep=K=!IVTxwtc2nqdK*Jsz^gAeRFY}LzUcVL{G8fz9@!) zmZVaqn^*+xh5Dj2tR{jaqS%4PvNKos3zGOt;SAg}Qv3@DWrheO%uM&ntn!2JwE92L zs$f!S+k*|b2bw9kz&UO1&{t<#_dC=6TTFXp!bIQs@=x+*;68QWvL0-&d1!QWADSJl z2|KYjo)5k5`P6H-AExGZ+`c00093000R9b8TsCWnX7< z01E(PY;SXAWG--SX8;QTZ*XO9Wn?aJZf5|#tpET3000010000000001v%3tbN|Tyb zKa*rvZIcjKdkKGQH^(Ie006F&lvqvypOfQQLIKi~CRsoM1e0f3B?K1|jJA`ISr!2_ zlc!lg0=f*7-V7L%g<24k*dGuJ0000000000006?1ELuMTT`rS>E*O)AS}Fn0ldxJp c0k@OzT0sGklQLU80mqYXTN?%jSO5S30F4|`9{>OV diff --git a/Assets/FlashTools/Scripts/FlashAnim.cs b/Assets/FlashTools/Scripts/FlashAnim.cs index 18aaab4..ab9249e 100644 --- a/Assets/FlashTools/Scripts/FlashAnim.cs +++ b/Assets/FlashTools/Scripts/FlashAnim.cs @@ -183,14 +183,16 @@ namespace FlashTools { } void Update() { - _frame_timer += 25.0f * Time.deltaTime; - while ( _frame_timer > 1.0f ) { - _frame_timer -= 1.0f; - ++_current_frame; - if ( _current_frame > frameCount - 1 ) { - _current_frame = 0; + if ( Asset ) { + _frame_timer += Asset.Data.FrameRate * Time.deltaTime; + while ( _frame_timer > 1.0f ) { + _frame_timer -= 1.0f; + ++_current_frame; + if ( _current_frame > frameCount - 1 ) { + _current_frame = 0; + } + //Debug.LogFormat("Cur frame: {0}", _current_frame); } - //Debug.LogFormat("Cur frame: {0}", _current_frame); } } @@ -207,31 +209,6 @@ namespace FlashTools { 1.0f / Asset.PixelsPerUnit, -1.0f / Asset.PixelsPerUnit, 1.0f / Asset.PixelsPerUnit))); - - /* - if ( _vertices_arr.Length < _vertices.Count ) { - _vertices_arr = _vertices.ToArray(); - } else { - _vertices.CopyTo(_vertices_arr); - } - if ( _triangles_arr.Length < _triangles.Count ) { - _triangles_arr = _triangles.ToArray(); - } else { - _triangles.CopyTo(_triangles_arr); - } - if ( _uvs_arr.Length < _uvs.Count ) { - _uvs_arr = _uvs.ToArray(); - } else { - _uvs.CopyTo(_uvs_arr); - } - - var mesh = new Mesh(); - mesh.vertices = _vertices_arr; - mesh.triangles = _triangles_arr; - mesh.uv = _uvs_arr; - mesh.RecalculateNormals(); - GetComponent().mesh = mesh;*/ - var mesh_filter = GetComponent(); if ( mesh_filter ) { var mesh = mesh_filter.sharedMesh diff --git a/Assets/FlashTools/Scripts/FlashAnimAsset.cs b/Assets/FlashTools/Scripts/FlashAnimAsset.cs index c24f1ea..baa0144 100644 --- a/Assets/FlashTools/Scripts/FlashAnimAsset.cs +++ b/Assets/FlashTools/Scripts/FlashAnimAsset.cs @@ -96,9 +96,10 @@ namespace FlashTools { [System.Serializable] public class FlashAnimData { - public FlashAnimSymbolData Stage = new FlashAnimSymbolData(); - public FlashAnimLibraryData Library = new FlashAnimLibraryData(); - public List Strings = new List(); + public FlashAnimSymbolData Stage = new FlashAnimSymbolData(); + public FlashAnimLibraryData Library = new FlashAnimLibraryData(); + public List Strings = new List(); + public int FrameRate = 24; } public class FlashAnimAsset : ScriptableObject { diff --git a/Assets/FlashTools/Scripts/Internal/Editor/FlashAnimFtaPostprocessor.cs b/Assets/FlashTools/Scripts/Internal/Editor/FlashAnimFtaPostprocessor.cs index d6460c4..afe7a80 100644 --- a/Assets/FlashTools/Scripts/Internal/Editor/FlashAnimFtaPostprocessor.cs +++ b/Assets/FlashTools/Scripts/Internal/Editor/FlashAnimFtaPostprocessor.cs @@ -37,18 +37,27 @@ namespace FlashTools.Internal { static FlashAnimData LoadFlashAnimFromFtaFile(string fta_path) { try { - var fta_root_elem = XDocument.Load(fta_path).Document.Root; - var flash_anim_data = new FlashAnimData(); - LoadFlashAnimStageFromFtaRootElem (fta_root_elem, flash_anim_data); - LoadFlashAnimLibraryFromFtaRootElem(fta_root_elem, flash_anim_data); - LoadFlashAnimStringsFromFtaRootElem(fta_root_elem, flash_anim_data); - return flash_anim_data; + return LoadFlashAnimDocFromFtaRootElem( + XDocument.Load(fta_path).Document.Root, + new FlashAnimData()); } catch ( Exception e ) { Debug.LogErrorFormat("Parsing flash anim .fta file error: {0}", e.Message); return null; } } + // ----------------------------- + // Document + // ----------------------------- + + static FlashAnimData LoadFlashAnimDocFromFtaRootElem(XElement root_elem, FlashAnimData data) { + data.FrameRate = SafeLoadIntFromElemAttr(root_elem, "frame_rate", data.FrameRate); + LoadFlashAnimStageFromFtaRootElem (root_elem, data); + LoadFlashAnimLibraryFromFtaRootElem(root_elem, data); + LoadFlashAnimStringsFromFtaRootElem(root_elem, data); + return data; + } + // ----------------------------- // Stage // -----------------------------