Lab arrow FLASH arrow Tweenerでアニメーションを作成

Tweenerでアニメーションを作成

FLASHでアニメーションを作成するには、フレームパネル上でキーフレームを配置して作成する方法と、Action Scriptで動的に作成する方法があります。
フレームパネルではトゥイーンを使って簡単にスムーズなアニメーションを作成できますが、Action Scriptで同じ事を実現しようとすると、どうしても複雑なコードになりがちです。
そんな時に複雑なアニメーション処理を担ってくれるライブラリ、Tweenerが便利です。

次のサンプルはとてもシンプルな例です。
ターゲットの円をクリックすると、ステージの右側へ徐々にスピードダウンしながら移動します。
import caurina.transitions.Tweener;

//ターゲットをクリックでトゥイーンを開始
target_mc.addEventListener(MouseEvent.CLICK, startTween)

function startTween(event:MouseEvent):void {
	Tweener.addTween(event.target, {
		time: 2,	//アニメーション時間を2秒に設定
		x: 300		//x座標を300まで移動
	});
}
アニメーション時間に2秒、X座標に300のパラメータを指定しているだけのシンプルなコードです。
アニメーションの動きはデフォルトだと徐々にスピードダウンしていくイーズアウトのような動きですが、パラメータを与えることによってイーズインやスプリングのような動きも可能です。

次のサンプルは、もう少しパラメータを増やした例です。また標準のクラスの他に、「DisplayShortcuts」と「ColorShortcuts」も利用しています。
アニメーションの動きは「transration」パラメータに「easeOutElastic」というスプリングのような動きを使っています。
import caurina.transitions.Tweener;
import caurina.transitions.properties.DisplayShortcuts;
import caurina.transitions.properties.ColorShortcuts;

//クラスのイニシャライズ
DisplayShortcuts.init();
ColorShortcuts.init();

target_mc.addEventListener(MouseEvent.CLICK, startTween)

function startTween(event:MouseEvent):void {
	Tweener.addTween(event.target, {
		time: 2,
		delay: 1,			//アニメーション開始までの静止時間に1秒を設定
		x: 300,
		_scale: 2,			//スケールを2倍に拡大(DisplayShortcuts)
		_color: 0x817d00,	//カラーを黄緑に変更(ColorShortcuts)
		transition: "easeOutElastic"
	});
}
最後にぼかし効果を行うためのクラス「FilterShortcuts」と、アニメーション完了時に関数を呼び出すパラメータ「onComplete」を追加します。
また「onCompleteParams」パラペータを使うと、関数を実行する際に引数を渡すことができます。
import caurina.transitions.Tweener;
import caurina.transitions.properties.DisplayShortcuts;
import caurina.transitions.properties.FilterShortcuts;
import caurina.transitions.properties.ColorShortcuts;

DisplayShortcuts.init();
FilterShortcuts.init();
ColorShortcuts.init();

target_mc.addEventListener(MouseEvent.CLICK, startTween)

function startTween(event:MouseEvent):void {
	Tweener.addTween(event.target, {
		time: 2,
		delay: 1,
		x: 300,
		_scale: 2,
		_color: 0x817d00,
		_Blur_blurX: 25,	//ぼかしをX、Yともに25ピクセルに設定
		_Blur_blurY: 25,
		_Blur_quality: 2,	//ぼかしのクォリティを2に設定(デフォルトは1(MEDIUM))
		transition: "easeOutElastic",
		onComplete: completeHandler,	//アニメーション終了時に関数を実行
		onCompleteParams: [100, 100]	//関数に引数を配列で渡します
	});
}
function completeHandler(posX:int, posY:int):void {
	target_mc.x = posX;
	target_mc.y = posY;
}
こんな感じで、Tweenerを使ってアニメーションを作成すると、とても簡単に思えます。
サンプルのようなシンプルなアニメーションでも、もしTweenerを使わずに作成しようとするなら、けっこうな作業になりそうです。
Tweenerの詳しいマニュアルは、英語版ですがWEBで公開されています。
Tweener Documentation and Language Reference
パラメータをオブジェクトで渡す方法や、その他のメソッドを応用することで、さらに複雑な処理ができそうです。

サンプルデータ

tweener.zip tweener.zip (57.9 kB)
※サンプルデータのご利用は自己責任でお願いいたします。