as3_回転のアニメーション

回転のアニメーションに関係するよく使う式を2つ書いておきます。

1. 角度と半径から座標を出す方法

回転のアニメーションなどで使います。
式はこんな感じ。

x座標 = Math.cos(角度 * Math.PI / 180) * 半径;
y座標 = Math.sin(角度 * Math.PI / 180) * 半径;

角度の数値を足しながら回転をするアニメーション

サンプルコードはこんな感じです。
半径40ピクセルの円を描いてアニメーションします。x,yで最後の方で足している320と50は中心位置のオフセット値。

var rot:Number=0;
ball.addEventListener( Event.ENTER_FRAME, scrollbana );

function scrollbana( event:Event ):void{
	var a:Number = 0.15;
	var b:Number = 0.7;

	event.target.x =Math.cos(rot * Math.PI / 180)*40+320;
	event.target.y =Math.sin(rot * Math.PI / 180)*40+50;

	rot+=10;
	if(rot>360)rot=0;	
}

2. 座標から角度を出す方法

さっきとは逆で、座標から角度を調べます。
目的のオブジェクトがある方向に回転するときなどに使います。
式はこんな感じ

角度 = Math.atan2(y座標,x座標) * 180 / Math.PI;

サンプル:矢印がマウスの方向へ向きます。

ソースコードはこちら。
矢印を中心にするために、矢印(event.target)のx座標,y座標をそれぞれ引いて0基点にしてます。

ball.addEventListener( Event.ENTER_FRAME, ballrot );
function ballrot( event:Event ):void{
	var rot = Math.atan2(stage.mouseY-event.target.y  ,  stage.mouseX - event.target.x ) * 180 / Math.PI;
	event.target.rotation = rot;
}

前回のイージングでマウスに追従するのと組み合わせると

回転になると、sinとかcosとか出てきてそれだけでなんかイヤですねーーー。



Adobe Flash CS3 詳細! ActionScript3.0入門ノート2 (CD-ROM付)

Post a comment.