Organized and simplified spine-starling.

This commit is contained in:
NathanSweet 2013-05-04 11:38:23 +02:00
parent 9cadc92b97
commit 45f93ca31f
8 changed files with 31 additions and 56 deletions

View File

@ -17,18 +17,19 @@
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/spark.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/sparkskins.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/rpc.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/videoPlayer.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp_air.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/datavisualization.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp_air.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/videoPlayer.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/spark_dmv.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/flash-integration.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_dmv.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/flash-integration.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_flashflexkit.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
</excludedEntries>
</libraryPathEntry>
<libraryPathEntry kind="3" linkType="1" path="/spine-starling/bin/spine-starling.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
</libraryPath>
<sourceAttachmentPath/>
</compiler>

View File

@ -1,9 +1,10 @@
package {
import spine.AnimationStateData;
import spine.SkeletonAnimationSprite;
import spine.SkeletonData;
import spine.StarlingSkeletonJson;
import spine.SkeletonJson;
import spine.starling.SkeletonAnimationSprite;
import spine.starling.StarlingAtlasAttachmentLoader;
import starling.core.Starling;
import starling.display.Sprite;
@ -30,7 +31,7 @@ public class Game extends Sprite {
var xml:XML = XML(new SpineboyAtlasXml());
var atlas:TextureAtlas = new TextureAtlas(texture, xml);
var json:StarlingSkeletonJson = new StarlingSkeletonJson(atlas);
var json:SkeletonJson = new SkeletonJson(new StarlingAtlasAttachmentLoader(atlas));
var skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson());
var stateData:AnimationStateData = new AnimationStateData(skeletonData);
@ -42,9 +43,9 @@ public class Game extends Sprite {
skeleton.setAnimationStateData(stateData);
skeleton.x = 320;
skeleton.y = 420;
skeleton.setAnimation("walk", true);
/*skeleton.setAnimation("walk", true);
skeleton.addAnimation("jump", false, 3);
skeleton.addAnimation("walk", true);
skeleton.addAnimation("walk", true);*/
addChild(skeleton);
Starling.juggler.add(skeleton);

View File

@ -7,15 +7,15 @@
<excludedEntries>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/advancedgrids.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_air.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/locale/{locale}" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/charts.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/netmon.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/locale/{locale}" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/spark.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/sparkskins.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/rpc.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp_air.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/videoPlayer.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp_air.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/flash-integration.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/authoringsupport.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.swc" useDefaultLinkType="false"/>
@ -33,8 +33,8 @@
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
</excludedEntries>
</libraryPathEntry>
<libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="libs/starling.swc" useDefaultLinkType="false"/>
<libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
</libraryPath>
<sourceAttachmentPath/>
</compiler>

View File

@ -1,34 +0,0 @@
package spine {
import flash.utils.ByteArray;
import spine.Bone;
import spine.SkeletonData;
import spine.SkeletonJson;
import spine.attachments.AttachmentLoader;
import starling.textures.TextureAtlas;
public class StarlingSkeletonJson {
private var json:SkeletonJson;
/** @param object A TextureAtlas or AttachmentLoader. */
public function StarlingSkeletonJson (object:*) {
if (object is TextureAtlas)
json = new SkeletonJson(new StarlingAtlasAttachmentLoader(object));
else if (object is AttachmentLoader)
json = new SkeletonJson(AttachmentLoader(object));
else
throw new Error("object must be a TextureAtlas or AttachmentLoader.");
Bone.yDown = true;
}
/** @param object A String or ByteArray. */
public function readSkeletonData (object:*, name:String = null) : SkeletonData {
if (object is String) return json.readSkeletonData(String(object), name);
if (object is ByteArray) return json.readSkeletonData(object.readUTFBytes(object.length), name);
throw new Error("object must be a String or ByteArray.");
}
}
}

View File

@ -1,4 +1,7 @@
package spine {
package spine.starling {
import spine.AnimationState;
import spine.AnimationStateData;
import spine.SkeletonData;
public class SkeletonAnimationSprite extends SkeletonSprite {
public var states:Vector.<AnimationState> = new Vector.<AnimationState>();

View File

@ -1,4 +1,4 @@
package spine {
package spine.starling {
import starling.display.Image;
import starling.textures.Texture;

View File

@ -1,4 +1,4 @@
package spine {
package spine.starling {
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
@ -9,6 +9,10 @@ import starling.animation.IAnimatable;
import starling.core.RenderSupport;
import starling.display.DisplayObject;
import starling.utils.MatrixUtil;
import spine.Bone;
import spine.Skeleton;
import spine.SkeletonData;
import spine.Slot;
public class SkeletonSprite extends DisplayObject implements IAnimatable {
static private var tempPoint:Point = new Point();
@ -17,14 +21,14 @@ public class SkeletonSprite extends DisplayObject implements IAnimatable {
private var _skeleton:Skeleton;
public function SkeletonSprite (skeletonData:SkeletonData) {
Bone.yDown = true;
_skeleton = new Skeleton(skeletonData);
_skeleton.updateWorldTransform();
Bone.yDown = true;
}
public function advanceTime (time:Number) : void {
_skeleton.update(time);
public function advanceTime (delta:Number) : void {
_skeleton.update(delta);
}
override public function render (support:RenderSupport, alpha:Number) : void {
@ -40,7 +44,7 @@ public class SkeletonSprite extends DisplayObject implements IAnimatable {
var b:Number = skeleton.b * slot.b;
var a:Number = skeleton.a * slot.a;
var image:SkeletonImage = regionAttachment.texture as SkeletonImage;
var image:SkeletonImage = regionAttachment.rendererObject as SkeletonImage;
var vertexData:Vector.<Number> = image.vertexData.rawData;
vertexData[0] = vertices[2];

View File

@ -1,4 +1,4 @@
package spine {
package spine.starling {
import spine.Bone;
import spine.Skin;
import spine.attachments.Attachment;
@ -22,7 +22,7 @@ public class StarlingAtlasAttachmentLoader implements AttachmentLoader {
if (type == AttachmentType.region) {
var regionAttachment:RegionAttachment = new RegionAttachment(name);
var texture:Texture = atlas.getTexture(name);
regionAttachment.texture = new SkeletonImage(texture);
regionAttachment.rendererObject = new SkeletonImage(texture);
regionAttachment.regionOffsetX = texture.frame.x;
regionAttachment.regionOffsetY = texture.frame.y;
regionAttachment.regionWidth = texture.width;