I wrote a class for starling to play animations
package;
import starling.textures.Texture;
import openfl.Vector;
import starling.core.Starling;
import openfl.utils.Dictionary;
import starling.display.MovieClip;
import starling.display.Sprite;
class Anim extends Sprite {
private var animations:Dictionary<String, MovieClip> = new Dictionary();
private var currentAnimation:MovieClip;
public var currentLabel:String;
public function new() {
super();
}
public function addAnimation(name:String, textures:Vector<Texture>, fps:Number = 12):Void {
final mc:MovieClip = new MovieClip(textures, fps);
animations[name] = mc;
}
public function gotoAndPlay(name:String, frame:Int = 0):Void {
if (currentLabel == name) {
return;
}
if (currentAnimation != null) {
currentAnimation.stop();
this.removeChild(currentAnimation);
Starling.current.juggler.remove(currentAnimation);
}
final newAnim:MovieClip = animations[name];
if (newAnim != null) {
currentAnimation = newAnim;
currentAnimation.currentFrame = frame;
currentAnimation.play();
currentLabel = name;
this.addChild(currentAnimation);
Starling.current.juggler.add(currentAnimation);
}
}
}
