瀏覽代碼

Updated to Starling 1.4. Fixed Starling atlas loading. Minor optimizations.

NathanSweet 12 年之前
父節點
當前提交
b0c4890560

+ 1 - 1
spine-starling/spine-starling/.actionScriptProperties

@@ -10,7 +10,7 @@
         </excludedEntries>
         </excludedEntries>
       </libraryPathEntry>
       </libraryPathEntry>
       <libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
       <libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
-      <libraryPathEntry kind="3" linkType="1" path="libs/starling-1.3.swc" useDefaultLinkType="false"/>
+      <libraryPathEntry kind="3" linkType="1" path="libs/starling-1.4.swc" useDefaultLinkType="false"/>
     </libraryPath>
     </libraryPath>
     <sourceAttachmentPath/>
     <sourceAttachmentPath/>
   </compiler>
   </compiler>

二進制
spine-starling/spine-starling/libs/starling-1.3.swc


二進制
spine-starling/spine-starling/libs/starling-1.4.swc


+ 18 - 15
spine-starling/spine-starling/src/spine/starling/SkeletonSprite.as

@@ -48,6 +48,7 @@ import starling.display.BlendMode;
 import starling.display.DisplayObject;
 import starling.display.DisplayObject;
 import starling.utils.Color;
 import starling.utils.Color;
 import starling.utils.MatrixUtil;
 import starling.utils.MatrixUtil;
+import starling.utils.VertexData;
 
 
 public class SkeletonSprite extends DisplayObject implements IAnimatable {
 public class SkeletonSprite extends DisplayObject implements IAnimatable {
 	static private var tempPoint:Point = new Point();
 	static private var tempPoint:Point = new Point();
@@ -71,33 +72,35 @@ public class SkeletonSprite extends DisplayObject implements IAnimatable {
 
 
 	override public function render (support:RenderSupport, alpha:Number) : void {
 	override public function render (support:RenderSupport, alpha:Number) : void {
 		alpha *= this.alpha * skeleton.a;
 		alpha *= this.alpha * skeleton.a;
+		var r:Number = skeleton.r * 255;
+		var g:Number = skeleton.g * 255;
+		var b:Number = skeleton.b * 255;
+		var x:Number = skeleton.x;
+		var y:Number = skeleton.y;
 		var drawOrder:Vector.<Slot> = skeleton.drawOrder;
 		var drawOrder:Vector.<Slot> = skeleton.drawOrder;
 		for (var i:int = 0, n:int = drawOrder.length; i < n; i++) {
 		for (var i:int = 0, n:int = drawOrder.length; i < n; i++) {
 			var slot:Slot = drawOrder[i];
 			var slot:Slot = drawOrder[i];
 			var regionAttachment:RegionAttachment = slot.attachment as RegionAttachment;
 			var regionAttachment:RegionAttachment = slot.attachment as RegionAttachment;
 			if (regionAttachment != null) {
 			if (regionAttachment != null) {
 				var vertices:Vector.<Number> = this.vertices;
 				var vertices:Vector.<Number> = this.vertices;
-				regionAttachment.computeWorldVertices(skeleton.x, skeleton.y, slot.bone, vertices);
-				var r:Number = skeleton.r * slot.r * 255;
-				var g:Number = skeleton.g * slot.g * 255;
-				var b:Number = skeleton.b * slot.b * 255;
+				regionAttachment.computeWorldVertices(x, y, slot.bone, vertices);
 				var a:Number = slot.a;
 				var a:Number = slot.a;
-				var rgb:uint = Color.rgb(r,g,b);
+				var rgb:uint = Color.rgb(r * slot.r, g * slot.g, b * slot.b);
 
 
 				var image:SkeletonImage = regionAttachment.rendererObject as SkeletonImage;
 				var image:SkeletonImage = regionAttachment.rendererObject as SkeletonImage;
-				var vertexData:Vector.<Number> = image.vertexData.rawData;
+				var vertexData:VertexData = image.vertexData;
 						
 						
-				image.vertexData.setPosition(0, vertices[2], vertices[3]);				
-				image.vertexData.setColorAndAlpha(0, rgb, a);
+				vertexData.setPosition(0, vertices[2], vertices[3]);				
+				vertexData.setColorAndAlpha(0, rgb, a);
 				
 				
-				image.vertexData.setPosition(1, vertices[4], vertices[5]);
-				image.vertexData.setColorAndAlpha(1, rgb, a);
+				vertexData.setPosition(1, vertices[4], vertices[5]);
+				vertexData.setColorAndAlpha(1, rgb, a);
 				
 				
-				image.vertexData.setPosition(2, vertices[0], vertices[1]);
-				image.vertexData.setColorAndAlpha(2, rgb, a);
-				
-				image.vertexData.setPosition(3, vertices[6], vertices[7]);
-				image.vertexData.setColorAndAlpha(3, rgb, a);
+				vertexData.setPosition(2, vertices[0], vertices[1]);
+				vertexData.setColorAndAlpha(2, rgb, a);
+
+				vertexData.setPosition(3, vertices[6], vertices[7]);
+				vertexData.setColorAndAlpha(3, rgb, a);
 
 
 				image.updateVertices();
 				image.updateVertices();
 				support.blendMode = slot.data.additiveBlending ? BlendMode.ADD : BlendMode.NORMAL;
 				support.blendMode = slot.data.additiveBlending ? BlendMode.ADD : BlendMode.NORMAL;

+ 6 - 6
spine-starling/spine-starling/src/spine/starling/StarlingAtlasAttachmentLoader.as

@@ -62,12 +62,12 @@ public class StarlingAtlasAttachmentLoader implements AttachmentLoader {
 			var frame:Rectangle = texture.frame;
 			var frame:Rectangle = texture.frame;
 			texture = Texture.fromTexture(texture); // Discard frame.
 			texture = Texture.fromTexture(texture); // Discard frame.
 			regionAttachment.rendererObject = new SkeletonImage(texture);
 			regionAttachment.rendererObject = new SkeletonImage(texture);
-			regionAttachment.regionOffsetX = frame.x;
-			regionAttachment.regionOffsetY = frame.y;
-			regionAttachment.regionWidth = frame.width;
-			regionAttachment.regionHeight = frame.height;
-			regionAttachment.regionOriginalWidth = texture.width;
-			regionAttachment.regionOriginalHeight = texture.height;
+			regionAttachment.regionOffsetX = -frame.x;
+			regionAttachment.regionOffsetY = -frame.y;
+			regionAttachment.regionWidth = texture.width;
+			regionAttachment.regionHeight = texture.height;
+			regionAttachment.regionOriginalWidth = frame.width;
+			regionAttachment.regionOriginalHeight = frame.height;
 			return regionAttachment;
 			return regionAttachment;
 		case AttachmentType.boundingbox:
 		case AttachmentType.boundingbox:
 			return new BoundingBoxAttachment(name);
 			return new BoundingBoxAttachment(name);