ASでのイージングつき移動
Lightweight Programmatic Tweening
の記事を見て
そういえば昔ちょっと多めのものをイージングつけて動かすため、できるだけ重くならない/負荷の制御がしやすいよう、
class SmoothMoveMc extends MovieClip { var nStep:Number = 10; var nDevide:Number; function xSmoothMove(nextX:Number, nextY:Number):Void { var nowX = this._x; var nowY = this._y; var i = 0; this.onEnterFrame = function() { var tmp=Math.pow(nStep-i,2); this._x += ((nextX-nowX)/nDevide)*tmp; this._y += ((nextY-nowY)/nDevide)*tmp; i++; if(i>=nStep){ this._x=this.nextX; this._y=this.nextY; delete this.onEnterFrame; } }; } //コンストラクタ function SmoothMoveMc() { this.nDevide = 0; for (var i = 1; i<=nStep; i++) { nDevide += i*i; } } }
みたいなコード書いてよく使ってたなぁとか思い出した。(細かいところでツッコミどころが結構あるのはご愛嬌)
フレーム数を予め決めておいて、フレーム数ぶんだけ1+4+9+....って階乗した数を足した数値を用意して、その数値を使って座標の算出、という仕組み。
で、↑の記事内やコメントにあったTweenクラスを軽く調べてみてええ加減Flash8で追加になった機能その他はちゃんと全部勉強しなきゃいけないな、という危機感に迫られたのは秘密です……orz