Flashで等速直線運動(1)

IllustratorではなくFlashの話ですが。
ActionScriptでTweenLiteというフレームワークを使うと、アニメーションの効果を手軽に指定することができます。典型的なのは

  • 次第に加速させながら指定の場所までオブジェクトを動かす
    TweenLite.to(this,1,{x:480,easing.Sine:EaseIn});
  • 次第に減速させながら指定の場所までオブジェクトを動かす
    TweenLite.to(this,1,{x:480,easing.Sine:EaseOut});

など。タイトルの通り等速なら、easing.Linear:EaseNone、となる。

※1秒かけて、x座標を480まで動かす場合。
コードはちょっとうろ覚えだが、だいたいこんな感じに書く。詳しくは各自で。

ところが、「停止状態から、一定の速度になるまで加速して、以後は等速」というのは簡単には指定できない。
で、どうするか、というのはまた今度。

うわぁ。上記は結構間違って書き散らしてますね。動くコードは例えば下記。

package{
	import flash.display.Sprite;
	import com.greensock.*;
	import com.greensock.easing.*;
	
	public class main extends Sprite{
		public var b1:ball;
		
		public function main(){
			b1=new ball();
			b1.x=24;
			b1.y=24;
			addChild(b1);
			
			TweenLite.to(b1,2,{x:b1.x+272,y:b1.y+432,ease:Sine.easeIn});
						
		}
	
	}

}

こうして作ったFlashは(再読み込み(F5)してね)

こんな感じで加速します。


Want to Leave a Reply?