AS3用 トゥイーン・クラスのメモ
AS3(flex2)のアニメーションは、ロバート・パンナーのtweenライブラリが採用されてるすね。
ってことは、Flash9がリリースされたときには、スクリプトのアニメーションはflex2同様に、mx.effects.easing ライブラリで制御されるっぽい。
自作でイージイン用のコード書く場合も、これと入出力を同じにしとくとあとで交換がきくんジャマイカと。
function( 現在の時間, 初期値, 増減差分, アニメーション時間): Number{
~ ここで計算 ~
return resultValue
}
とすると、基本のアニメーション関数はこんな感じかな
Sineによる可減速
function( currentTime, initValue, difference, duration): Number{
var rad = currentTime / duration -0.5 ;
var resultValue = (Math.sin( rad *Math.PI ) +1) * 0.5 * difference + initValue
return resultValue
}
ってやったら、あまり気持ちよくない・・・ どうやらSinじゃなくてQuadricのトゥイーンを実装しなきゃダメっぽいけど
数学わかんね・・・
と思ったら、R.Penner easingの掲示板への書き込みを発見。この式を移植しろってことなのかな。
イーズアウト
currentValue = -difference * (currentTime/=duration)*(currentTime-2) + initValue;
イーズイン
currentValue = difference*currentTme*currentTime/(duration*duration) + initvalue;
イーズイン&アウト
将来的なことを考えるのなら、Flash使いにとって定番だった、x = x + ( tx - x ) * speed の式をそろそろ卒業せにゃあかんということなのかなぁ・・・ 数学メンド臭いなぁ。