mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +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/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>
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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 var states:Vector.<AnimationState> = new Vector.<AnimationState>();
|
||||
@ -1,4 +1,4 @@
|
||||
package spine {
|
||||
package spine.starling {
|
||||
|
||||
import starling.display.Image;
|
||||
import starling.textures.Texture;
|
||||
@ -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];
|
||||
@ -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;
|
||||
Loading…
x
Reference in New Issue
Block a user