若干自由に使える時間ができたので、ここぞとばかりに 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 を減少 / 削除
}
Trackbacks (0)
http://www.nloc-web.com/mt/mt-tb.cgi/29
Comment(1)
Commented by reebok treadmills (2012年2月 6日 06:39)
Which was a wonderful meeting, and I would ne'er disregard it, neither should anyone who was there. He argues: In the event all of us who have been justified by Christ are estimated unrighteous, for what reason look for justification in Christ in the least?