浏览代码

Load sequence attachments from JSON.

EsotericSoftware/spine-editor#9
Nathan Sweet 4 年之前
父节点
当前提交
ff95b27bf6
共有 1 个文件被更改,包括 18 次插入1 次删除
  1. 18 1
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java

+ 18 - 1
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java

@@ -84,6 +84,9 @@ import com.esotericsoftware.spine.attachments.MeshAttachment;
 import com.esotericsoftware.spine.attachments.PathAttachment;
 import com.esotericsoftware.spine.attachments.PointAttachment;
 import com.esotericsoftware.spine.attachments.RegionAttachment;
+import com.esotericsoftware.spine.attachments.SequenceAttachment;
+import com.esotericsoftware.spine.attachments.SequenceAttachment.SequenceMode;
+import com.esotericsoftware.spine.attachments.TextureRegionAttachment;
 import com.esotericsoftware.spine.attachments.VertexAttachment;
 
 /** Loads skeleton data in the Spine JSON format.
@@ -452,7 +455,7 @@ public class SkeletonJson extends SkeletonLoader {
 			if (color != null) Color.valueOf(color, point.getColor());
 			return point;
 		}
-		case clipping:
+		case clipping: {
 			ClippingAttachment clip = attachmentLoader.newClippingAttachment(skin, name);
 			if (clip == null) return null;
 
@@ -469,6 +472,20 @@ public class SkeletonJson extends SkeletonLoader {
 			if (color != null) Color.valueOf(color, clip.getColor());
 			return clip;
 		}
+		case sequence:
+			Attachment attachment = readAttachment(map.getChild("attachment"), skin, slotIndex, name, skeletonData);
+			if (attachment == null) return null;
+			String path = ((TextureRegionAttachment)attachment).getPath();
+			int frameCount = map.getInt("count");
+			SequenceAttachment sequence = attachmentLoader.newSequenceAttachment(skin, name, path, frameCount);
+			if (sequence == null) return null;
+			sequence.setAttachment(attachment);
+			sequence.setPath(path);
+			sequence.setFrameCount(frameCount);
+			sequence.setFrameTime(map.getInt("time"));
+			sequence.setMode(SequenceMode.valueOf(map.getString("mode", SequenceMode.forward.name())));
+			return sequence;
+		}
 		return null;
 	}