From 670b2841fd8fc98e231a1e2ce73372e550b43ec6 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 3 Dec 2016 17:40:52 +0700 Subject: [PATCH] sequences separate by anchors now --- .../FTEditor/Postprocessors/SwfAssetPostprocessor.cs | 6 +++--- .../Editor/FTEditor/Postprocessors/SwfPostprocessor.cs | 7 +++++-- .../FlashTools/Scripts/Editor/FTEditor/SwfAssetData.cs | 3 ++- .../FlashTools/Scripts/Editor/FTSwfTools/SwfContext.cs | 5 +++-- .../Scripts/Editor/FTSwfTools/SwfContextExecuter.cs | 9 +++++++-- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfAssetPostprocessor.cs b/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfAssetPostprocessor.cs index 18520a4..d2fa3b1 100644 --- a/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfAssetPostprocessor.cs +++ b/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfAssetPostprocessor.cs @@ -294,10 +294,10 @@ namespace FTEditor.Postprocessors { if ( IsValidAssetsForFrame(asset, symbol) ) { foreach ( var frame in symbol.Frames ) { var baked_frame = BakeClipFrame(asset, data, frame); - if ( !string.IsNullOrEmpty(frame.Name) && - (sequences.Count < 1 || sequences.Last().Name != frame.Name) ) + if ( !string.IsNullOrEmpty(frame.Anchor) && + (sequences.Count < 1 || sequences.Last().Name != frame.Anchor) ) { - sequences.Add(new SwfClipAsset.Sequence{Name = frame.Name}); + sequences.Add(new SwfClipAsset.Sequence{Name = frame.Anchor}); } else if ( sequences.Count < 1 ) { sequences.Add(new SwfClipAsset.Sequence{Name = "Default"}); } diff --git a/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfPostprocessor.cs b/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfPostprocessor.cs index 67bf7c8..465d5f1 100644 --- a/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfPostprocessor.cs +++ b/Assets/FlashTools/Scripts/Editor/FTEditor/Postprocessors/SwfPostprocessor.cs @@ -111,8 +111,11 @@ namespace FTEditor.Postprocessors { static SwfFrameData LoadSymbolFrameData( SwfLibrary library, SwfDisplayList display_list) { - var frame = new SwfFrameData(); - frame.Name = display_list.FrameName; + var frame = new SwfFrameData{ + Anchor = display_list.FrameAnchors.Count > 0 + ? display_list.FrameAnchors[0] + : string.Empty, + Labels = new List(display_list.FrameLabels)}; return AddDisplayListToFrame( library, display_list, diff --git a/Assets/FlashTools/Scripts/Editor/FTEditor/SwfAssetData.cs b/Assets/FlashTools/Scripts/Editor/FTEditor/SwfAssetData.cs index 6181652..687a914 100644 --- a/Assets/FlashTools/Scripts/Editor/FTEditor/SwfAssetData.cs +++ b/Assets/FlashTools/Scripts/Editor/FTEditor/SwfAssetData.cs @@ -205,7 +205,8 @@ namespace FTEditor { [System.Serializable] class SwfFrameData { - public string Name = string.Empty; + public string Anchor = string.Empty; + public List Labels = new List(); public List Instances = new List(); } diff --git a/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContext.cs b/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContext.cs index ad72a8d..4256900 100644 --- a/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContext.cs +++ b/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContext.cs @@ -108,7 +108,8 @@ namespace FTSwfTools { } public class SwfDisplayList { - public string FrameName = string.Empty; - public DisplayInstances Instances = new DisplayInstances(); + public DisplayInstances Instances = new DisplayInstances(); + public List FrameLabels = new List(); + public List FrameAnchors = new List(); } } \ No newline at end of file diff --git a/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContextExecuter.cs b/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContextExecuter.cs index ea337a0..80c8cd7 100644 --- a/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContextExecuter.cs +++ b/Assets/FlashTools/Scripts/Editor/FTSwfTools/SwfContextExecuter.cs @@ -17,7 +17,8 @@ namespace FTSwfTools { } public bool NextFrame(List tags, SwfDisplayList dl) { - dl.FrameName = string.Empty; + dl.FrameLabels.Clear(); + dl.FrameAnchors.Clear(); while ( CurrentTag < tags.Count ) { var tag = tags[CurrentTag++]; tag.AcceptVistor(this, dl); @@ -171,7 +172,11 @@ namespace FTSwfTools { } public SwfDisplayList Visit(FrameLabelTag tag, SwfDisplayList dl) { - dl.FrameName = tag.Name.Trim(); + if ( tag.AnchorFlag == 0 ) { + dl.FrameLabels.Add(tag.Name.Trim()); + } else { + dl.FrameAnchors.Add(tag.Name.Trim()); + } return dl; }