Tweenクラスを使う

とある仕事の話をしていて教えてもらいました、Tweenクラスのことを。Tweenクラスの説明は便利なページがあったのでリンクを載せておきます。

こういう機能をActionScriptのデフォルトクラスとして提供していることをしらないと、探すことすらしなくて、普通に自前で実装してしまっていましたよ。
まぁ、普通のプログラマなら実装はそんなに難しくもないけど、ease in/ease out みたいな動きってノウハウが必要な部分が多いし、ちょっとした動きならこれを使えばいいですね。

テストしてみました。

1フレームのフラッシュで、aEnvと名づけたムービークリップを配置し、以下のムービークリップアクションスクリプトを書きます。

onClipEvent (load) {
  var  test:Number = 0;
}

また、以下のスクリプトを1フレ目のフレームスクリプトに書き込みます。

import mx.transitions.Tween;
import mx.transitions.easing.*;

var aEnvTween:Tween = new Tween( _root.aEnv,
  "test",            // 変化させるパラメータ.
  Regular.easeInOut, // アニメーションの種類.
  10,                // 開始値.
  300,               // 終了値.
  30,                // 時間(frameか秒)
  false);            // 上記時間の単位 (true:秒、false:frame)

aEnvTween.onMotionChanged = function (){
  trace( "anim "+this.time+"/"+this.duration);
  trace( " test :"+_root.aEnv.test );
}

aEnvTween.onMotionFinished = function (){
  trace("env done.");
}

これで実行すると以下のようにtrace出力され、任意のパラメータを変化させることが出来、また毎フレームの処理、アニメーション完了時の処理の実装手順が把握できました。

anim 1/30
 test :10.6444444444444
anim 2/30
 test :12.5777777777778
..
anim 30/30
 test :300
env done.