BetweenAS3のトゥイーンの再生時間を調べる

単にBetweenAS3#durationメソッドの存在に今日気づいたというだけの話なんだけども。これに気づくまで、TweenEvent.COMPLETEとTimerとか使って時間測ってたはずかし。

durationメソッド

このdurationメソッドが、ITweenオブジェクトの再生時間を返してくれる。FLVPlaybackクラスで言うところのtotalTimeメソッドに相当するやつ。

再生終了5秒前にこのオブジェクトをこっちにトゥイーンさせるとか、再生終了1秒前にBGMをフェードアウトさせるなんてことをするときには、これがないと話にならないんだけど、最近までdurationメソッドの存在を知らなくて、parallelserialをネストしまくったトゥイーンの秒数を手動で計算してた…。

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.tweens.ITween;
    
    public class Main extends Sprite 
    {
        public function Main():void 
        {
            var sp:Sprite = new Sprite();
            sp.graphics.beginFill(0x0);
            sp.graphics.drawCircle(100, 100, 100);
            sp.graphics.endFill();
            
            addChild(sp);
            
            var it:ITween = BetweenAS3.serial(
                                BetweenAS3.delay(BetweenAS3.tween(sp, { $x:200 }, null, 3), 3, 3),
                                BetweenAS3.tween(sp, { $x:200 }, null, 3),
                                BetweenAS3.parallel(
                                    BetweenAS3.tween(sp, { $x:200 }, null, 3),
                                    BetweenAS3.tween(sp, { $x:200 }, null, 3)
                                    )
                            );
                            
            trace(it.duration); //=> 15秒
        }
    }
}

BetweenAS3/en - Spark project