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);