Tweenクラスをバージョンアップ(Ver.1.6)
Tweenクラスorg.as3s.Tweenをバージョンアップしました。
ソースコード及びダウンロードはこちらから。
今回のアップデートは主にパフォーマンスの改善です。
改善後のパフォーマンスについてはTweenBencherというベンチマークがありましたので、テストしてみました。
Benchmark results: org.as3s.Tween
——————
250 Sprites :: Start Lag: 0.03 seconds :: FPS: 99
500 Sprites :: Start Lag: 0.08 seconds :: FPS: 96
1000 Sprites :: Start Lag: 0.24 seconds :: FPS: 92
2000 Sprites :: Start Lag: 0.54 seconds :: FPS: 46
4000 Sprites :: Start Lag: 1.85 seconds :: FPS: 13
Benchmark results: TweenLite
——————
250 Sprites :: Start Lag: 0.01 seconds :: FPS: 98
500 Sprites :: Start Lag: 0.01 seconds :: FPS: 97
1000 Sprites :: Start Lag: 0.07 seconds :: FPS: 83
2000 Sprites :: Start Lag: 0.08 seconds :: FPS: 42
4000 Sprites :: Start Lag: 0.13 seconds :: FPS: 21
Benchmark results: Tweener
——————
250 Sprites :: Start Lag: 0.36 seconds :: FPS: 93
500 Sprites :: Start Lag: 0.09 seconds :: FPS: 97
1000 Sprites :: Start Lag: 0.23 seconds :: FPS: 73
2000 Sprites :: Start Lag: 0.63 seconds :: FPS: 35
4000 Sprites :: Start Lag: 2.18 seconds :: FPS: 11
Benchmark results: fl.transitions.Tween
——————
250 Sprites :: Start Lag: 0.02 seconds :: FPS: 96
500 Sprites :: Start Lag: 0.04 seconds :: FPS: 90
1000 Sprites :: Start Lag: 0.15 seconds :: FPS: 48
2000 Sprites :: Start Lag: 0.26 seconds :: FPS: 24
4000 Sprites :: Start Lag: 0.53 seconds :: FPS: 11
それぞれ処理の方法が違うため一概には判断できませんが、
少なくとも2000SpritesくらいまではTweenLiteと同等以上、Tweenerよりは良いパフォーマンスになっています。
(そもそも2000以上のスプライトを同時に動かすような場合はこれらTweenクラスを使わずに独自に処理すべきでしょう。)
なお、クラスファイルを簡素化するためにTweenEventクラスを廃止しました。
イベントタイプは以下の通り変更になります。
Tween.START ・・・Tween開始時(複数指定の場合は各Tween開始時に呼ばれます)
Tween.UPDATE ・・・Tween中、毎フレーム呼ばれます。(pause中は呼ばれません)
Tween.PAUSE ・・・pauseの設定が変更された時に呼ばれます。(pause解除時にも呼ばれます)
Tween.COMPLETE ・・・すべてのTween完了時に呼ばれます。