diff --git a/src/pixi/extras/PIXISpine.js b/src/pixi/extras/PIXISpine.js index c84e221..83f00dd 100644 --- a/src/pixi/extras/PIXISpine.js +++ b/src/pixi/extras/PIXISpine.js @@ -86,8 +86,8 @@ this.slotContainers = []; - for (var i = 0, n = this.skeleton.drawOrder.length; i < n; i++) { - var slot = this.skeleton.drawOrder[i]; + for (var i = 0, n = this.skeleton.slots.length; i < n; i++) { + var slot = this.skeleton.slots[i]; var attachment = slot.attachment; var slotContainer = new PIXI.DisplayObjectContainer(); this.slotContainers.push(slotContainer); @@ -157,8 +157,11 @@ this.skeleton.updateWorldTransform(); var drawOrder = this.skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; + var slots = this.skeleton.slots; + for (var i = 0, n = drawOrder.length; i < n; i++) + this.children[i] = this.slotContainers[drawOrder[i]]; + for (i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; var attachment = slot.attachment; var slotContainer = this.slotContainers[i]; diff --git a/src/pixi/extras/PIXISpine.js b/src/pixi/extras/PIXISpine.js index c84e221..83f00dd 100644 --- a/src/pixi/extras/PIXISpine.js +++ b/src/pixi/extras/PIXISpine.js @@ -86,8 +86,8 @@ this.slotContainers = []; - for (var i = 0, n = this.skeleton.drawOrder.length; i < n; i++) { - var slot = this.skeleton.drawOrder[i]; + for (var i = 0, n = this.skeleton.slots.length; i < n; i++) { + var slot = this.skeleton.slots[i]; var attachment = slot.attachment; var slotContainer = new PIXI.DisplayObjectContainer(); this.slotContainers.push(slotContainer); @@ -157,8 +157,11 @@ this.skeleton.updateWorldTransform(); var drawOrder = this.skeleton.drawOrder; - for (var i = 0, n = drawOrder.length; i < n; i++) { - var slot = drawOrder[i]; + var slots = this.skeleton.slots; + for (var i = 0, n = drawOrder.length; i < n; i++) + this.children[i] = this.slotContainers[drawOrder[i]]; + for (i = 0, n = slots.length; i < n; i++) { + var slot = slots[i]; var attachment = slot.attachment; var slotContainer = this.slotContainers[i]; diff --git a/src/pixi/extras/Spine.js b/src/pixi/extras/Spine.js index 06ce610..4184699 100644 --- a/src/pixi/extras/Spine.js +++ b/src/pixi/extras/Spine.js @@ -743,12 +743,9 @@ var drawOrder = skeleton.drawOrder; var slots = skeleton.slots; var drawOrderToSetupIndex = this.drawOrders[frameIndex]; - if (!drawOrderToSetupIndex) { - for (var i = 0, n = slots.length; i < n; i++) - drawOrder[i] = slots[i]; - } else { + if (drawOrderToSetupIndex) { for (var i = 0, n = drawOrderToSetupIndex.length; i < n; i++) - drawOrder[i] = skeleton.slots[drawOrderToSetupIndex[i]]; + drawOrder[i] = drawOrderToSetupIndex[i]; } } @@ -1006,7 +1003,7 @@ var bone = this.bones[skeletonData.bones.indexOf(slotData.boneData)]; var slot = new spine.Slot(slotData, bone); this.slots.push(slot); - this.drawOrder.push(slot); + this.drawOrder.push(i); } this.ikConstraints = []; @@ -1098,11 +1095,10 @@ }, setSlotsToSetupPose: function () { var slots = this.slots; - var drawOrder = this.drawOrder; for (var i = 0, n = slots.length; i < n; i++) { - drawOrder[i] = slots[i]; slots[i].setToSetupPose(i); } + this.resetDrawOrder(); }, /** @return May return null. */ getRootBone: function () { @@ -1202,6 +1198,10 @@ }, update: function (delta) { this.time += delta; + }, + resetDrawOrder: function() { + for (var i = 0, n = this.drawOrder.length; i < n; i++) + this.drawOrder[i] = i; } }; @@ -1539,6 +1539,7 @@ } }, apply: function (skeleton) { + skeleton.resetDrawOrder(); for (var i = 0; i < this.tracks.length; i++) { var current = this.tracks[i]; if (!current) continue;