BetweenAS3のトゥイーンの再生時間を調べる
単にBetweenAS3#durationメソッドの存在に今日気づいたというだけの話なんだけども。これに気づくまで、TweenEvent.COMPLETEとTimerとか使って時間測ってたはずかし。
durationメソッド
このduration
メソッドが、ITween
オブジェクトの再生時間を返してくれる。FLVPlayback
クラスで言うところのtotalTime
メソッドに相当するやつ。
再生終了5秒前にこのオブジェクトをこっちにトゥイーンさせるとか、再生終了1秒前にBGMをフェードアウトさせるなんてことをするときには、これがないと話にならないんだけど、最近までduration
メソッドの存在を知らなくて、parallel
やserial
をネストしまくったトゥイーンの秒数を手動で計算してた…。
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秒
}
}
}