Entries

AS3メモ トゥイーンのメモ2

ActionScript Orgに一覧乗ってるスレがあった

Liner, Cubic, Quadlic, Quintまで全部そろってますよ。これで一見落着。

Math.linearTween = function (t, b, c, d) {
return c*t/d + b;
};
Math.easeInQuad = function (t, b, c, d) {
return c*(t/=d)*t + b;
};
Math.easeOutQuad = function (t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
};
Math.easeInOutQuad = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
};
Math.easeInCubic = function (t, b, c, d) {
return c*(t/=d)*t*t + b;
};
Math.easeOutCubic = function (t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
};
Math.easeInOutCubic = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
};
Math.easeInQuart = function (t, b, c, d) {
return c*(t/=d)*t*t*t + b;
};
Math.easeOutQuart = function (t, b, c, d) {
return -c * ((t=t/d-1)*t*t*t - 1) + b;
};
Math.easeInOutQuart = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
};
Math.easeInQuint = function (t, b, c, d) {
return c*(t/=d)*t*t*t*t + b;
};
Math.easeOutQuint = function (t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
};
Math.easeInOutQuint = function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
}; 

引き続き、 Back, Bouce, Circular, Exponential, Quartic あたりの式も捜索中・・・ってここまできたらR.Pennerのソース見る方がはやかったなぁ。

で、こいつらをGrowとかBlurとかResizeとかのeffectクラスの、 easingFunctionプロパティとして定義してやればいいわけか。
複数のトゥイーンを同時に動かすときはParralel, 順番に動かすときにはSequenceというコンポジットパターンのコンテナに入れてやるわけですね。
で、アニメーションの開始、更新、終了時にそれぞれイベントを出す・・・ と
フル実装すると、mx.effectがflash9でも使えるようになったら無駄になるので、作るなら簡易版にとどめるのが吉と。