关于Starling中的MovieClip反向、倒序播放实现
暂时想到的,修改内容最少的方法了
暂时想到的,修改内容最少的方法了
package com.liyunpeng.xxx
{
import flash.media.Sound;
import starling.animation.IAnimatable;
import starling.display.MovieClip;
import starling.textures.Texture;
public class MMovieClip extends MovieClip implements IAnimatable
{
private var _isReverse:Boolean = false;
public function MMovieClip(textures:Vector.<Texture>, fps:Number=12)
{
super(textures,fps);
}
public function set isReverse(value:Boolean):void
{
if(this._isReverse != value) {
var numFrames:int = this.numFrames;
var mTextures:Vector.<Texture> = new Vector.<Texture>();
var mSounds:Vector.<Sound> = new Vector.<Sound>();
var mDurations:Vector.<Number> = new Vector.<Number>();
for(var i:int=numFrames-1;i>=0;i--) {
mTextures.push(this.getFrameTexture(i));
mSounds.push(this.getFrameSound(i));
mDurations.push(this.getFrameDuration(i));
}
for(var j:int=0;j<numFrames;j++) {
this.setFrameTexture(j,mTextures[j]);
}
this.currentFrame = numFrames-1 - this.currentFrame;
}
this._isReverse = value;
}
public function get isReverse():Boolean
{
return this._isReverse;
}
}
}