mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-05 02:06:53 +08:00
[as3] Fixed event registration, see http://esotericsoftware.com/forum/Runtimes-spine-AS3-major-bug-callbacks-8045
This commit is contained in:
parent
a810a8d5c4
commit
60bbfce2fc
Binary file not shown.
@ -29,6 +29,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
package spine.examples {
|
package spine.examples {
|
||||||
|
import spine.animation.TrackEntry;
|
||||||
import flash.display.Sprite;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
import spine.*;
|
import spine.*;
|
||||||
@ -65,17 +66,23 @@ package spine.examples {
|
|||||||
skeleton.x = 400;
|
skeleton.x = 400;
|
||||||
skeleton.y = 560;
|
skeleton.y = 560;
|
||||||
|
|
||||||
skeleton.state.onStart.add(function(trackIndex : int) : void {
|
skeleton.state.onStart.add(function(entry : TrackEntry) : void {
|
||||||
trace(trackIndex + " fuu start: " + skeleton.state.getCurrent(trackIndex));
|
trace(entry.trackIndex + " start: " + entry.animation.name);
|
||||||
});
|
});
|
||||||
skeleton.state.onEnd.add(function(trackIndex : int) : void {
|
skeleton.state.onInterrupt.add(function(entry : TrackEntry) : void {
|
||||||
trace(trackIndex + " end: " + skeleton.state.getCurrent(trackIndex));
|
trace(entry.trackIndex + " interrupt: " + entry.animation.name);
|
||||||
});
|
});
|
||||||
skeleton.state.onComplete.add(function(trackIndex : int, count : int) : void {
|
skeleton.state.onEnd.add(function(entry : TrackEntry) : void {
|
||||||
trace(trackIndex + " complete: " + skeleton.state.getCurrent(trackIndex) + ", " + count);
|
trace(entry.trackIndex + " end: " + entry.animation.name);
|
||||||
});
|
});
|
||||||
skeleton.state.onEvent.add(function(trackIndex : int, event : Event) : void {
|
skeleton.state.onComplete.add(function(entry : TrackEntry) : void {
|
||||||
trace(trackIndex + " event: " + skeleton.state.getCurrent(trackIndex) + ", " + event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
trace(entry.trackIndex + " complete: " + entry.animation.name);
|
||||||
|
});
|
||||||
|
skeleton.state.onDispose.add(function(entry : TrackEntry) : void {
|
||||||
|
trace(entry.trackIndex + " dispose: " + entry.animation.name);
|
||||||
|
});
|
||||||
|
skeleton.state.onEvent.add(function(entry : TrackEntry, event : Event) : void {
|
||||||
|
trace(entry.trackIndex + " event: " + entry.animation.name + ", " + event.data.name + ": " + event.intValue + ", " + event.floatValue + ", " + event.stringValue);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (false) {
|
if (false) {
|
||||||
|
|||||||
@ -29,6 +29,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
package spine.flash {
|
package spine.flash {
|
||||||
|
import flash.events.Event;
|
||||||
import spine.SkeletonData;
|
import spine.SkeletonData;
|
||||||
import spine.animation.AnimationState;
|
import spine.animation.AnimationState;
|
||||||
import spine.animation.AnimationStateData;
|
import spine.animation.AnimationStateData;
|
||||||
@ -40,6 +41,12 @@ package spine.flash {
|
|||||||
super(skeletonData);
|
super(skeletonData);
|
||||||
state = new AnimationState(stateData ? stateData : new AnimationStateData(skeletonData));
|
state = new AnimationState(stateData ? stateData : new AnimationStateData(skeletonData));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override protected function onRemove(e:Event):void{
|
||||||
|
state.clearListeners();
|
||||||
|
state.clearListenerNotifications();
|
||||||
|
super.onRemove(e);
|
||||||
|
}
|
||||||
|
|
||||||
override public function advanceTime(time : Number) : void {
|
override public function advanceTime(time : Number) : void {
|
||||||
state.update(time * timeScale);
|
state.update(time * timeScale);
|
||||||
|
|||||||
@ -60,6 +60,21 @@ package spine.flash {
|
|||||||
_skeleton = new Skeleton(skeletonData);
|
_skeleton = new Skeleton(skeletonData);
|
||||||
_skeleton.updateWorldTransform();
|
_skeleton.updateWorldTransform();
|
||||||
|
|
||||||
|
addEventListener(Event.ADDED_TO_STAGE, onAdd);
|
||||||
|
addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
|
||||||
|
}
|
||||||
|
protected function onRemove(e:Event) : void {
|
||||||
|
removeEventListener(Event.ENTER_FRAME, enterFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function clearListeners() {
|
||||||
|
removeEventListener(Event.ADDED_TO_STAGE, onAdd);
|
||||||
|
removeEventListener(Event.REMOVED_FROM_STAGE, onRemove);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function onAdd(event:Event) : void {
|
||||||
|
lastTime = getTimer();
|
||||||
|
enterFrame(null);
|
||||||
addEventListener(Event.ENTER_FRAME, enterFrame);
|
addEventListener(Event.ENTER_FRAME, enterFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user