mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-03 06:09:09 +08:00
Organized and simplified spine-starling.
This commit is contained in:
parent
9cadc92b97
commit
45f93ca31f
@ -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/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/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/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/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/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/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/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_flashflexkit.swc" useDefaultLinkType="false"/>
|
||||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
|
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
|
||||||
</excludedEntries>
|
</excludedEntries>
|
||||||
</libraryPathEntry>
|
</libraryPathEntry>
|
||||||
<libraryPathEntry kind="3" linkType="1" path="/spine-starling/bin/spine-starling.swc" useDefaultLinkType="false"/>
|
<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>
|
</libraryPath>
|
||||||
<sourceAttachmentPath/>
|
<sourceAttachmentPath/>
|
||||||
</compiler>
|
</compiler>
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
package {
|
package {
|
||||||
|
|
||||||
import spine.AnimationStateData;
|
import spine.AnimationStateData;
|
||||||
import spine.SkeletonAnimationSprite;
|
|
||||||
import spine.SkeletonData;
|
import spine.SkeletonData;
|
||||||
import spine.StarlingSkeletonJson;
|
import spine.SkeletonJson;
|
||||||
|
import spine.starling.SkeletonAnimationSprite;
|
||||||
|
import spine.starling.StarlingAtlasAttachmentLoader;
|
||||||
|
|
||||||
import starling.core.Starling;
|
import starling.core.Starling;
|
||||||
import starling.display.Sprite;
|
import starling.display.Sprite;
|
||||||
@ -30,7 +31,7 @@ public class Game extends Sprite {
|
|||||||
var xml:XML = XML(new SpineboyAtlasXml());
|
var xml:XML = XML(new SpineboyAtlasXml());
|
||||||
var atlas:TextureAtlas = new TextureAtlas(texture, xml);
|
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 skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson());
|
||||||
|
|
||||||
var stateData:AnimationStateData = new AnimationStateData(skeletonData);
|
var stateData:AnimationStateData = new AnimationStateData(skeletonData);
|
||||||
@ -42,9 +43,9 @@ public class Game extends Sprite {
|
|||||||
skeleton.setAnimationStateData(stateData);
|
skeleton.setAnimationStateData(stateData);
|
||||||
skeleton.x = 320;
|
skeleton.x = 320;
|
||||||
skeleton.y = 420;
|
skeleton.y = 420;
|
||||||
skeleton.setAnimation("walk", true);
|
/*skeleton.setAnimation("walk", true);
|
||||||
skeleton.addAnimation("jump", false, 3);
|
skeleton.addAnimation("jump", false, 3);
|
||||||
skeleton.addAnimation("walk", true);
|
skeleton.addAnimation("walk", true);*/
|
||||||
|
|
||||||
addChild(skeleton);
|
addChild(skeleton);
|
||||||
Starling.juggler.add(skeleton);
|
Starling.juggler.add(skeleton);
|
||||||
|
|||||||
@ -7,15 +7,15 @@
|
|||||||
<excludedEntries>
|
<excludedEntries>
|
||||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_charts.swc" useDefaultLinkType="false"/>
|
<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/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}/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}/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/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/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/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/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/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/authoringsupport.swc" useDefaultLinkType="false"/>
|
||||||
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/qtp.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"/>
|
<libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/automation_agent.swc" useDefaultLinkType="false"/>
|
||||||
</excludedEntries>
|
</excludedEntries>
|
||||||
</libraryPathEntry>
|
</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="libs/starling.swc" useDefaultLinkType="false"/>
|
||||||
|
<libraryPathEntry kind="3" linkType="1" path="/spine-as3/bin/spine-as3.swc" useDefaultLinkType="false"/>
|
||||||
</libraryPath>
|
</libraryPath>
|
||||||
<sourceAttachmentPath/>
|
<sourceAttachmentPath/>
|
||||||
</compiler>
|
</compiler>
|
||||||
|
|||||||
@ -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.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,4 +1,7 @@
|
|||||||
package spine {
|
package spine.starling {
|
||||||
|
import spine.AnimationState;
|
||||||
|
import spine.AnimationStateData;
|
||||||
|
import spine.SkeletonData;
|
||||||
|
|
||||||
public class SkeletonAnimationSprite extends SkeletonSprite {
|
public class SkeletonAnimationSprite extends SkeletonSprite {
|
||||||
public var states:Vector.<AnimationState> = new Vector.<AnimationState>();
|
public var states:Vector.<AnimationState> = new Vector.<AnimationState>();
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package spine {
|
package spine.starling {
|
||||||
|
|
||||||
import starling.display.Image;
|
import starling.display.Image;
|
||||||
import starling.textures.Texture;
|
import starling.textures.Texture;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package spine {
|
package spine.starling {
|
||||||
import flash.geom.Matrix;
|
import flash.geom.Matrix;
|
||||||
import flash.geom.Point;
|
import flash.geom.Point;
|
||||||
import flash.geom.Rectangle;
|
import flash.geom.Rectangle;
|
||||||
@ -9,6 +9,10 @@ import starling.animation.IAnimatable;
|
|||||||
import starling.core.RenderSupport;
|
import starling.core.RenderSupport;
|
||||||
import starling.display.DisplayObject;
|
import starling.display.DisplayObject;
|
||||||
import starling.utils.MatrixUtil;
|
import starling.utils.MatrixUtil;
|
||||||
|
import spine.Bone;
|
||||||
|
import spine.Skeleton;
|
||||||
|
import spine.SkeletonData;
|
||||||
|
import spine.Slot;
|
||||||
|
|
||||||
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();
|
||||||
@ -17,14 +21,14 @@ public class SkeletonSprite extends DisplayObject implements IAnimatable {
|
|||||||
private var _skeleton:Skeleton;
|
private var _skeleton:Skeleton;
|
||||||
|
|
||||||
public function SkeletonSprite (skeletonData:SkeletonData) {
|
public function SkeletonSprite (skeletonData:SkeletonData) {
|
||||||
|
Bone.yDown = true;
|
||||||
|
|
||||||
_skeleton = new Skeleton(skeletonData);
|
_skeleton = new Skeleton(skeletonData);
|
||||||
_skeleton.updateWorldTransform();
|
_skeleton.updateWorldTransform();
|
||||||
|
|
||||||
Bone.yDown = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function advanceTime (time:Number) : void {
|
public function advanceTime (delta:Number) : void {
|
||||||
_skeleton.update(time);
|
_skeleton.update(delta);
|
||||||
}
|
}
|
||||||
|
|
||||||
override public function render (support:RenderSupport, alpha:Number) : void {
|
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 b:Number = skeleton.b * slot.b;
|
||||||
var a:Number = skeleton.a * slot.a;
|
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;
|
var vertexData:Vector.<Number> = image.vertexData.rawData;
|
||||||
|
|
||||||
vertexData[0] = vertices[2];
|
vertexData[0] = vertices[2];
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package spine {
|
package spine.starling {
|
||||||
import spine.Bone;
|
import spine.Bone;
|
||||||
import spine.Skin;
|
import spine.Skin;
|
||||||
import spine.attachments.Attachment;
|
import spine.attachments.Attachment;
|
||||||
@ -22,7 +22,7 @@ public class StarlingAtlasAttachmentLoader implements AttachmentLoader {
|
|||||||
if (type == AttachmentType.region) {
|
if (type == AttachmentType.region) {
|
||||||
var regionAttachment:RegionAttachment = new RegionAttachment(name);
|
var regionAttachment:RegionAttachment = new RegionAttachment(name);
|
||||||
var texture:Texture = atlas.getTexture(name);
|
var texture:Texture = atlas.getTexture(name);
|
||||||
regionAttachment.texture = new SkeletonImage(texture);
|
regionAttachment.rendererObject = new SkeletonImage(texture);
|
||||||
regionAttachment.regionOffsetX = texture.frame.x;
|
regionAttachment.regionOffsetX = texture.frame.x;
|
||||||
regionAttachment.regionOffsetY = texture.frame.y;
|
regionAttachment.regionOffsetY = texture.frame.y;
|
||||||
regionAttachment.regionWidth = texture.width;
|
regionAttachment.regionWidth = texture.width;
|
||||||
Loading…
x
Reference in New Issue
Block a user