Flashムービーを逆再生するのを作ってみた。
2時ごろ思いついて作り始めたけど時間切れなので公開。
Reverseというクラスが全て制御してて、Buttonを押したら
on(press){
Reverse.reversePlay(movieClip);
}
が呼ばれて、movieClipの内容が逆再生する。
*逆再生できるようにしたので追記。せっかくなので貼ってみる。
/—————–1フレーム目——————-/
/**
指定したMovieClipを逆再生するクラス。
setRoop(boolean) でループするか指定。
reversePlay(movieClip) でループ開始。
**/
this.stop();
var mov; // 逆再生されるMovieClip
isRoop = new Boolean(); // ループするかどうか
function setRoop(r){
this.roop = r;
}
/** MovieClip mov を逆再生する **/
function reversePlay(m){
this.mov = m;
trace(“reversePlay()”);
if(mov._currentframe == 1) mov.gotoAndStop(mov._totalframes); // movを最後のフレームへ
else this.gotoAndPlay(2);
}
/** MovieClip mov の逆再生を止める **/
function reverseStop(){
this.gotoAndStop(1); // 逆再生終了
}
/** reversePlay(movieClip)から呼ばれる関数
1フレームだけmovieClipを巻き戻す **/
function reverseOneFrame(){
trace(“reverseOneFrame()”);
if(mov._currentframe > 1){
trace(mov._currentframe + “フレーム目”);
mov.prevFrame(); // 1フレーム戻して停止
this.gotoAndPlay(2); // 3フレーム目で再帰
}
else if(mov._currentframe == 1 && this.isRoop){ // ループ指定時、ループする
mov.gotoAndStop(mov._totalframes); // 最後のフレームへ
gotoAndPlay(2);
}
else this.reverseStop(); // ループ指定が無い時、止まる
}
/—————–2フレーム目——————-/
// 空きフレーム
// 1,3フレーム目から飛んでくるだけのフレーム
/—————–3フレーム目——————-/
reverseOneFrame();