mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-26 03:31:24 +08:00
Changed Vector<Function> to Listeners class.
This commit is contained in:
parent
47040c815f
commit
5fc34b77b4
@ -71,16 +71,16 @@ public class Main extends Sprite {
|
|||||||
skeleton.x = 320;
|
skeleton.x = 320;
|
||||||
skeleton.y = 420;
|
skeleton.y = 420;
|
||||||
|
|
||||||
skeleton.state.onStart.push(function (trackIndex:int) : void {
|
skeleton.state.onStart.add(function (trackIndex:int) : void {
|
||||||
trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));
|
trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));
|
||||||
});
|
});
|
||||||
skeleton.state.onEnd.push(function (trackIndex:int) : void {
|
skeleton.state.onEnd.add(function (trackIndex:int) : void {
|
||||||
trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex));
|
trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex));
|
||||||
});
|
});
|
||||||
skeleton.state.onComplete.push(function (trackIndex:int, count:int) : void {
|
skeleton.state.onComplete.add(function (trackIndex:int, count:int) : void {
|
||||||
trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count);
|
trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count);
|
||||||
});
|
});
|
||||||
skeleton.state.onEvent.push(function (trackIndex:int, event:Event) : void {
|
skeleton.state.onEvent.add(function (trackIndex:int, event:Event) : void {
|
||||||
trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", "
|
trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", "
|
||||||
+ event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
+ event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -40,10 +40,10 @@ public class AnimationState {
|
|||||||
private var _data:AnimationStateData;
|
private var _data:AnimationStateData;
|
||||||
private var _tracks:Vector.<TrackEntry> = new Vector.<TrackEntry>();
|
private var _tracks:Vector.<TrackEntry> = new Vector.<TrackEntry>();
|
||||||
private var _events:Vector.<Event> = new Vector.<Event>();
|
private var _events:Vector.<Event> = new Vector.<Event>();
|
||||||
public var onStart:Vector.<Function> = new Vector.<Function>();
|
public var onStart:Listeners = new Listeners();
|
||||||
public var onEnd:Vector.<Function> = new Vector.<Function>();
|
public var onEnd:Listeners = new Listeners();
|
||||||
public var onComplete:Vector.<Function> = new Vector.<Function>();
|
public var onComplete:Listeners = new Listeners();
|
||||||
public var onEvent:Vector.<Function> = new Vector.<Function>();
|
public var onEvent:Listeners = new Listeners();
|
||||||
public var timeScale:Number = 1;
|
public var timeScale:Number = 1;
|
||||||
|
|
||||||
public function AnimationState (data:AnimationStateData) {
|
public function AnimationState (data:AnimationStateData) {
|
||||||
@ -105,16 +105,14 @@ public class AnimationState {
|
|||||||
|
|
||||||
for each (var event:Event in _events) {
|
for each (var event:Event in _events) {
|
||||||
if (current.onEvent != null) current.onEvent(i, event);
|
if (current.onEvent != null) current.onEvent(i, event);
|
||||||
for each (var onEventFunc:Function in onEvent)
|
onEvent.invoke(i, event);
|
||||||
onEventFunc(i, event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if completed the animation or a loop iteration.
|
// Check if completed the animation or a loop iteration.
|
||||||
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
|
if (loop ? (lastTime % endTime > time % endTime) : (lastTime < endTime && time >= endTime)) {
|
||||||
var count:int = (int)(time / endTime);
|
var count:int = (int)(time / endTime);
|
||||||
if (current.onComplete != null) current.onComplete(i, count);
|
if (current.onComplete != null) current.onComplete(i, count);
|
||||||
for each (var onCompleteFunc:Function in onComplete)
|
onComplete.invoke(i, count);
|
||||||
onCompleteFunc(i, count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
current.lastTime = current.time;
|
current.lastTime = current.time;
|
||||||
@ -133,8 +131,7 @@ public class AnimationState {
|
|||||||
if (!current) return;
|
if (!current) return;
|
||||||
|
|
||||||
if (current.onEnd != null) current.onEnd(trackIndex);
|
if (current.onEnd != null) current.onEnd(trackIndex);
|
||||||
for each (var onEndFunc:Function in onEnd)
|
onEnd.invoke(trackIndex);
|
||||||
onEndFunc(trackIndex);
|
|
||||||
|
|
||||||
_tracks[trackIndex] = null;
|
_tracks[trackIndex] = null;
|
||||||
}
|
}
|
||||||
@ -152,8 +149,7 @@ public class AnimationState {
|
|||||||
current.previous = null;
|
current.previous = null;
|
||||||
|
|
||||||
if (current.onEnd != null) current.onEnd(index);
|
if (current.onEnd != null) current.onEnd(index);
|
||||||
for each (var onEndFunc:Function in onEnd)
|
onEnd.invoke(index);
|
||||||
onEndFunc(index);
|
|
||||||
|
|
||||||
entry.mixDuration = _data.getMix(current.animation, entry.animation);
|
entry.mixDuration = _data.getMix(current.animation, entry.animation);
|
||||||
if (entry.mixDuration > 0) {
|
if (entry.mixDuration > 0) {
|
||||||
@ -165,8 +161,7 @@ public class AnimationState {
|
|||||||
_tracks[index] = entry;
|
_tracks[index] = entry;
|
||||||
|
|
||||||
if (entry.onStart != null) entry.onStart(index);
|
if (entry.onStart != null) entry.onStart(index);
|
||||||
for each (var onStartFunc:Function in onStart)
|
onStart.invoke(index);
|
||||||
onStartFunc(index);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setAnimationByName (trackIndex:int, animationName:String, loop:Boolean) : TrackEntry {
|
public function setAnimationByName (trackIndex:int, animationName:String, loop:Boolean) : TrackEntry {
|
||||||
|
|||||||
@ -44,16 +44,16 @@ public class AtlasExample extends Sprite {
|
|||||||
skeleton.x = 320;
|
skeleton.x = 320;
|
||||||
skeleton.y = 420;
|
skeleton.y = 420;
|
||||||
|
|
||||||
skeleton.state.onStart.push(function (trackIndex:int) : void {
|
skeleton.state.onStart.add(function (trackIndex:int) : void {
|
||||||
trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));
|
trace(trackIndex + " start: " + skeleton.state.getCurrent(trackIndex));
|
||||||
});
|
});
|
||||||
skeleton.state.onEnd.push(function (trackIndex:int) : void {
|
skeleton.state.onEnd.add(function (trackIndex:int) : void {
|
||||||
trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex));
|
trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex));
|
||||||
});
|
});
|
||||||
skeleton.state.onComplete.push(function (trackIndex:int, count:int) : void {
|
skeleton.state.onComplete.add(function (trackIndex:int, count:int) : void {
|
||||||
trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count);
|
trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count);
|
||||||
});
|
});
|
||||||
skeleton.state.onEvent.push(function (trackIndex:int, event:Event) : void {
|
skeleton.state.onEvent.add(function (trackIndex:int, event:Event) : void {
|
||||||
trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", "
|
trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", "
|
||||||
+ event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
+ event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user