From e41eae8c72b76f57b4e895f15fdbc373b2035529 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Wed, 14 Sep 2016 18:38:07 +0700 Subject: [PATCH] GotoAndStop, GotoAndPlay --- Assets/FlashTools/Scripts/SwfClip.cs | 48 ++++++++----------- Assets/FlashTools/Scripts/SwfClipAsset.cs | 3 +- .../FlashTools/Scripts/SwfClipController.cs | 14 ++++++ 3 files changed, 37 insertions(+), 28 deletions(-) diff --git a/Assets/FlashTools/Scripts/SwfClip.cs b/Assets/FlashTools/Scripts/SwfClip.cs index 25b0cb3..e33ca98 100644 --- a/Assets/FlashTools/Scripts/SwfClip.cs +++ b/Assets/FlashTools/Scripts/SwfClip.cs @@ -121,10 +121,23 @@ namespace FlashTools { // --------------------------------------------------------------------- // - // Private + // Internal // // --------------------------------------------------------------------- + public void InternalLateUpdate() { + if ( _meshFilter && _meshRenderer && _dirtyMesh ) { + var baked_frame = GetCurrentBakedFrame(); + if ( baked_frame != null ) { + _meshFilter.sharedMesh = baked_frame.CachedMesh; + _meshRenderer.sharedMaterials = baked_frame.Materials; + } else { + _meshFilter.sharedMesh = null; + _meshRenderer.sharedMaterials = new Material[0]; + } + } + } + public void UpdateAllProperties() { ClearCache(); clip = _clip; @@ -142,6 +155,13 @@ namespace FlashTools { _curPropBlock = null; } + void ChangeSortingProperties() { + if ( _meshRenderer ) { + _meshRenderer.sortingOrder = sortingOrder; + _meshRenderer.sortingLayerName = sortingLayer; + } + } + void ChangeClip() { if ( _meshRenderer ) { _meshRenderer.enabled = !!clip; @@ -181,13 +201,6 @@ namespace FlashTools { SetDirtyCurrentMesh(); } - void ChangeSortingProperties() { - if ( _meshRenderer ) { - _meshRenderer.sortingOrder = sortingOrder; - _meshRenderer.sortingLayerName = sortingLayer; - } - } - void UpdatePropBlock() { if ( _meshRenderer ) { if ( _curPropBlock == null ) { @@ -215,25 +228,6 @@ namespace FlashTools { : null; } - // --------------------------------------------------------------------- - // - // Internal - // - // --------------------------------------------------------------------- - - public void InternalLateUpdate() { - if ( _meshFilter && _meshRenderer && _dirtyMesh ) { - var baked_frame = GetCurrentBakedFrame(); - if ( baked_frame != null ) { - _meshFilter.sharedMesh = baked_frame.CachedMesh; - _meshRenderer.sharedMaterials = baked_frame.Materials; - } else { - _meshFilter.sharedMesh = null; - _meshRenderer.sharedMaterials = new Material[0]; - } - } - } - // --------------------------------------------------------------------- // // Messages diff --git a/Assets/FlashTools/Scripts/SwfClipAsset.cs b/Assets/FlashTools/Scripts/SwfClipAsset.cs index c7c5e7e..fd1ce8f 100644 --- a/Assets/FlashTools/Scripts/SwfClipAsset.cs +++ b/Assets/FlashTools/Scripts/SwfClipAsset.cs @@ -27,7 +27,8 @@ namespace FlashTools { for ( int i = 0, e = SubMeshes.Length; i < e; ++i ) { SwfClipAssetCache.FillTriangles( - SubMeshes[i].StartVertex, SubMeshes[i].IndexCount); + SubMeshes[i].StartVertex, + SubMeshes[i].IndexCount); mesh.SetTriangles(SwfClipAssetCache.Indices, i); } diff --git a/Assets/FlashTools/Scripts/SwfClipController.cs b/Assets/FlashTools/Scripts/SwfClipController.cs index 997f8cc..f6f853d 100644 --- a/Assets/FlashTools/Scripts/SwfClipController.cs +++ b/Assets/FlashTools/Scripts/SwfClipController.cs @@ -79,6 +79,20 @@ namespace FlashTools { // // --------------------------------------------------------------------- + public void GotoAndStop(int frame) { + if ( _clip ) { + _clip.currentFrame = frame; + } + Stop(); + } + + public void GotoAndPlay(int frame) { + if ( _clip ) { + _clip.currentFrame = frame; + } + Play(); + } + public void Stop() { var is_playing = isPlaying; _isPlaying = false;