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を公開してくれている。動きの参考になる。

Transition and tween explorer

このエントリの一番上のサンプル「Test of Fuse Kit v2.0」では、左矢印の時Strong.easeOutを、右矢印の時Elastic.easeInOutをEasingとして指定している。動きに簡単にエフェクトをかける事ができる。