ご利用の環境はサポートされておりません。

最新のブラウザをご利用のうえ、CSS / JavaScript を有効にしてご覧ください。



AS3 アニメーション

若干自由に使える時間ができたので、ここぞとばかりに Flash のお勉強です。お仕事では AS2 ばかりで AS3 で作ったモノといえばここのトップくらいなので、基本的なトコから復習です。
ということで、最近買った本や以前買ってちゃんと読めていなかった本を読み漁ってます。

入門ノート1は以前読んだけど2はまだ手付かず・・・ WebDesigning の8月号はライブラリ一覧(見開き1ページ)のためだけに買いました。で、OOPを読了して、アニメーションをちゃんと読み直しています。

そんな感じで、ライブラリを使わない数学・物理的なアニメーションをサンプル作って勉強しています。

[円運動] (Click to Start)

基本ですね。
サンプルでは、EnterFrame でステージの中央(cX / cY)を基準に三角関数を利用して円運動させています。

private function moveCircle_handler( event:Event ):void
{
	circle.x = cX + Math.cos( angle ) * radius;
	circle.y = cY + Math.sin( angle ) * radius;
	angle += speed;
}

[楕円運動] (Click to Start)

円運動をベースに、X軸とY軸で異なる半径を設定すれば楕円運動になります。
scale や alpha をイジれば、3Dっぽく見せかけることもできます。

private function moveCircle_handler( event:Event ):void
{
	circle.x = cX + Math.cos( angle ) * rX;
	circle.y = cY + Math.sin( angle ) * rY;
	angle += speed;
}

[線を描画してみる] (Click to Start)

若干いじって、円運動している3つの円の間に線を描画してみました。
特に理由はありません・・・

private function moveCircle_handler( event:Event ):void
{
	circle1.x = cX + Math.cos( angle1 ) * radius;
	circle1.y = cY + Math.sin( angle1 ) * radius;
	angle1 += speed1;

	circle2.x = cX + Math.cos( angle2 ) * radius;
	circle2.y = cY + Math.sin( angle2 ) * radius;
	angle2 += speed2;

	circle3.x = cX + Math.cos( angle3 ) * radius;
	circle3.y = cY + Math.sin( angle3 ) * radius;
	angle3 += speed3;

	drawLine();
}

private function drawLine():void
{
	var _line:Sprite = new Sprite();
	_line.graphics.lineStyle( 1, 0xffffff );
	_line.graphics.moveTo( circle1.x, circle1.y );
	_line.graphics.lineTo( circle2.x, circle2.y );
	_line.graphics.lineTo( circle3.x, circle3.y );
	_line.graphics.lineTo( circle1.x, circle1.y );
	addChild( _line );

	_line.addEventListener( Event.ENTER_FRAME, hideLine_handler );
}

private function hideLine_handler( event:Event ):void
{
	// 描画した線の alpha を減少 / 削除
}
関連リンク
Math & Physics
知の探求
AS3 アニメーション No.2
AS3 アニメーション No.3
AS3 TextField メモ

Comment(0)

Trackbacks (0)

http://www.nloc-web.com/mt/mt-tb.cgi/29

関連リンク
Math & Physics
知の探求
AS3 アニメーション No.2
AS3 アニメーション No.3
AS3 TextField メモ

ページの先頭へ