From 277d2f28f7804171238b8472eacb04f01016d80f Mon Sep 17 00:00:00 2001 From: badlogic Date: Mon, 17 Jun 2019 13:39:31 +0200 Subject: [PATCH] [as3] SkeletonJson curve timeline parsing was incorrect. Closes #1382. --- spine-as3/spine-as3/src/spine/SkeletonJson.as | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spine-as3/spine-as3/src/spine/SkeletonJson.as b/spine-as3/spine-as3/src/spine/SkeletonJson.as index d3c887479..5c75d6fef 100644 --- a/spine-as3/spine-as3/src/spine/SkeletonJson.as +++ b/spine-as3/spine-as3/src/spine/SkeletonJson.as @@ -68,6 +68,11 @@ package spine { public function SkeletonJson(attachmentLoader : AttachmentLoader = null) { this.attachmentLoader = attachmentLoader; } + + private function getFloatValue(object : Object, key: String, defaultValue : Number) : Number {; + var hasKey : Boolean = object.hasOwnProperty(key); + return hasKey ? Number(object[key]) : defaultValue; + } /** @param object A String or ByteArray. */ public function readSkeletonData(object : *, name : String = null) : SkeletonData { @@ -558,8 +563,8 @@ package spine { frameIndex = 0; for each (valueMap in values) { - var x : Number = Number(valueMap["x"] || defaultValue) * timelineScale; - var y : Number = Number(valueMap["y"] || defaultValue) * timelineScale; + var x : Number = getFloatValue(valueMap, "x", defaultValue) * timelineScale; + var y : Number = getFloatValue(valueMap, "y", defaultValue) * timelineScale; translateTimeline.setFrame(frameIndex, Number(valueMap["time"] || 0), x, y); readCurve(valueMap, translateTimeline, frameIndex); frameIndex++;