FuseKitというFlashのTweenライブラリを試してみた。
なので、今回公開している.flaファイルはFuseKitをインストールしてパスを通さないと正しくコンパイルできません。
以前 Flash – Lineを引いて、MovieClipをTraceさせるクラス というエントリで自作のMCのアニメーション用のクラスを作ったけど、AS2からアニメーションはTweenというクラスで制御するのが普通らしい。
(俺の作った奴だと、大量のMovieClipを加減速させながら表示するのには向いてるけど、ちょっと仕様が汚い)
(fla, code archive)
■なぜFuseKitが良いのか?
原始的な(モーショントゥイーンを使わない)ActionScriptによるアニメーション制御では、onEnterFrame()の中で毎ループ毎にx, y座標を変化させるという、積分的な方法を使っていた。
それに対して、Tween、Transition、Easingなどのクラスでは、「ここからココまでn秒かけて動け」「減速しながら止まれ」などの指定をする。とてもコードが直感的になる。
だけど、Tweenを使ったアニメーション方法はアニメーション途中で動きを変える事ができないらしい。また、結構コードがややこしくなる。
これは、デバイスのGUI部分としてFlashを採用している俺にとって致命的な仕様だ。webのアニメーションとは異なり、タンジブルメディアを扱う人間は、アニメーション途中だろうと操作を止めない。表示はそれに応えなければならない。
FuseKitは、そのTweenの弱点を補ってくれるライブラリだ。
trick7.com blog: Fuse KitにFuseKitの利点がざっと書かれている。複数のMCの複数プロパティをアニメーションに合わせて同時に更新していったり、途中で変化を止めたりが、ほぼ1行のActionScriptで一発実行できるのがすげえー
■FuseKitでMovieClipをアニメーションさせる
FuseKitのアニメーションは1行で動かせる。
もっと簡単なサンプル(開いた瞬間Tweenを実行します)、fla
たった1行で、TweenにEasingのエフェクト、何秒かけるか、何秒後に開始するか、アニメーションが終わった時のコールバックなどを指定して実行できる。
importcom.mosesSupposes.fuse.*;
importmx.transitions.easing.*;ZigoEngine.doTween(
[shokai,book],//動かすMovieClip 複数指定できる
‘_x,_y,_brightOffset’,//変更するプロパティ
[100,150,50],//プロパティの最終値
1,//秒
Strong.easeInOut,//easing
0,//delay(秒)
{scope:this,func:’trace’,args:’slidedone.’}//callback
);
ZigoEngineすごい。
ZigoEngineに渡すeaseプロパティ は、mx.transitions.easing.以下のeasingクラスを渡すと動きにエフェクトを付けてくれる。
■Easing&Transitionエクスプローラー
Transition and tween explorer
Macromediaの人が、TransitionとEasingの効果をプレビューするためのFlashを公開してくれている。動きの参考になる。
このエントリの一番上のサンプル「Test of Fuse Kit v2.0」では、左矢印の時Strong.easeOutを、右矢印の時Elastic.easeInOutをEasingとして指定している。動きに簡単にエフェクトをかける事ができる。