diff --git a/SpineViewer/Dialogs/BatchOpenSpineDialog.Designer.cs b/SpineViewer/Dialogs/BatchOpenSpineDialog.Designer.cs index a3a53c9..0358fcf 100644 --- a/SpineViewer/Dialogs/BatchOpenSpineDialog.Designer.cs +++ b/SpineViewer/Dialogs/BatchOpenSpineDialog.Designer.cs @@ -194,7 +194,7 @@ // openFileDialog_Skel.AddExtension = false; openFileDialog_Skel.AddToRecent = false; - openFileDialog_Skel.Filter = "skel 文件 (*.skel; *.json)|*.skel;*.json"; + openFileDialog_Skel.Filter = "skel 文件 (*.skel; *.json)|*.skel;*.json|所有文件 (*.*)|*.*"; openFileDialog_Skel.Multiselect = true; // // BatchOpenSpineDialog diff --git a/SpineViewer/Dialogs/OpenSpineDialog.Designer.cs b/SpineViewer/Dialogs/OpenSpineDialog.Designer.cs index 46c31c4..dc19d8a 100644 --- a/SpineViewer/Dialogs/OpenSpineDialog.Designer.cs +++ b/SpineViewer/Dialogs/OpenSpineDialog.Designer.cs @@ -232,13 +232,13 @@ // openFileDialog_Skel.AddExtension = false; openFileDialog_Skel.AddToRecent = false; - openFileDialog_Skel.Filter = "skel 文件 (*.skel; *.json)|*.skel;*.json"; + openFileDialog_Skel.Filter = "skel 文件 (*.skel; *.json)|*.skel;*.json|所有文件 (*.*)|*.*"; // // openFileDialog_Atlas // openFileDialog_Atlas.AddExtension = false; openFileDialog_Atlas.AddToRecent = false; - openFileDialog_Atlas.Filter = "atlas 文件 (*.atlas)|*.atlas"; + openFileDialog_Atlas.Filter = "atlas 文件 (*.atlas)|*.atlas|所有文件 (*.*)|*.*"; // // OpenSpineDialog // diff --git a/SpineViewer/Dialogs/OpenSpineDialog.resx b/SpineViewer/Dialogs/OpenSpineDialog.resx index 394517b..6dd5ea0 100644 --- a/SpineViewer/Dialogs/OpenSpineDialog.resx +++ b/SpineViewer/Dialogs/OpenSpineDialog.resx @@ -118,10 +118,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 156, 25 + 75, 24 - 404, 23 + 317, 22 diff --git a/SpineViewer/Spine/Implementations/Spine36.cs b/SpineViewer/Spine/Implementations/Spine36.cs index 469cf91..3b6897e 100644 --- a/SpineViewer/Spine/Implementations/Spine36.cs +++ b/SpineViewer/Spine/Implementations/Spine36.cs @@ -49,22 +49,29 @@ namespace SpineViewer.Spine.Implementations public Spine36(string skelPath, string? atlasPath = null) : base(skelPath, atlasPath) { atlas = new Atlas(AtlasPath, textureLoader); - if (Path.GetExtension(SkelPath) == ".skel") + try { + // 先尝试二进制文件 skeletonJson = null; skeletonBinary = new SkeletonBinary(atlas); skeletonData = skeletonBinary.ReadSkeletonData(SkelPath); } - else if (Path.GetExtension(SkelPath) == ".json") + catch { - skeletonBinary = null; - skeletonJson = new SkeletonJson(atlas); - skeletonData = skeletonJson.ReadSkeletonData(SkelPath); - } - else - { - throw new ArgumentException($"Unknown skeleton file format {SkelPath}"); + try + { + // 再尝试 Json 文件 + skeletonBinary = null; + skeletonJson = new SkeletonJson(atlas); + skeletonData = skeletonJson.ReadSkeletonData(SkelPath); + } + catch + { + // 都不行就报错 + throw new ArgumentException($"Unknown skeleton file format {SkelPath}"); + } } + animationStateData = new AnimationStateData(skeletonData); skeleton = new Skeleton(skeletonData); animationState = new AnimationState(animationStateData); diff --git a/SpineViewer/Spine/Implementations/Spine38.cs b/SpineViewer/Spine/Implementations/Spine38.cs index 6a595ab..facd647 100644 --- a/SpineViewer/Spine/Implementations/Spine38.cs +++ b/SpineViewer/Spine/Implementations/Spine38.cs @@ -51,24 +51,30 @@ namespace SpineViewer.Spine.Implementations public Spine38(string skelPath, string? atlasPath = null) : base(skelPath, atlasPath) { atlas = new Atlas(AtlasPath, textureLoader); - if (Path.GetExtension(SkelPath) == ".skel") + try { + // 先尝试二进制文件 skeletonJson = null; skeletonBinary = new SkeletonBinary(atlas); skeletonData = skeletonBinary.ReadSkeletonData(SkelPath); } - else if (Path.GetExtension(SkelPath) == ".json") + catch { - skeletonBinary = null; - skeletonJson = new SkeletonJson(atlas); - skeletonData = skeletonJson.ReadSkeletonData(SkelPath); + try + { + // 再尝试 Json 文件 + skeletonBinary = null; + skeletonJson = new SkeletonJson(atlas); + skeletonData = skeletonJson.ReadSkeletonData(SkelPath); + } + catch + { + // 都不行就报错 + throw new ArgumentException($"Unknown skeleton file format {SkelPath}"); + } } - else - { - throw new ArgumentException($"Unknown skeleton file format {SkelPath}"); - } - animationStateData = new AnimationStateData(skeletonData); + animationStateData = new AnimationStateData(skeletonData); skeleton = new Skeleton(skeletonData); animationState = new AnimationState(animationStateData);