やってみました。
フレームアクションで覚える Papervision3D チュートリアル
もうちょっと改良してメニューっぽく使えるかも。
やってみました。
フレームアクションで覚える Papervision3D チュートリアル
もうちょっと改良してメニューっぽく使えるかも。
水平方向のバネの動きをメモ。
var spring:Number = 0.1; //0~1
var targetX:Number = stage.stageWidth / 2;
var vx:Number = 0;
var friction:Number = 0.9;
addEventListener(Event.ENTER_FRAME, bane);
function bane(event:Event):void {
var dx:Number = targetX - maru_mc.x;
var ax:Number = dx * spring;
vx += ax;
vx *= friction;
maru_mc.x += vx;
}
ステージにmaru_mcを配置します。
そして初期設定で変数spring:バネの強さ、targetX:目標地点、vx:maru_mcの初期位置の数値、friction:減速(摩擦)係数を設定します。
後は上記の処理をENTER_FRAMEで。目標地点までは加速度は減り続けるが速度は増え続けるというものです。
モーショントゥイーンでも可能ですが、マウスカーソルに追従させる時などはActionScriptで処理を施します。理論的には、
//easingの値は0~1 MCの座標 += (目標の座標 - MCの座標) * easing;
で表現できます。 以下のスクリプトでhoge_mcがマウスカーソルを後追いします。
addEventListener(Event.ENTER_FRAME,hand);
function hand(event:Event):void {
hoge_mc.x += (mouseX - hoge_mc.x) * 0.1;
hoge_mc.y += (mouseY - hoge_mc.y) * 0.1;
}
イージングは座標だけでなく大きさやalphaなどお手軽に応用が利くのでとっても便利。
ラジアンとは、コンピュータが角度を計算する時に得意な単位。なるほど便利そうだが実体が見えない。。慣れてなんぼと思われる。
1radians≒57.2958
360°の円≒6.2832radians=2πradians
πはActionScriptでMath.PI
//度とラジアン⇔角度の公式 radians = degrees * Math.PI / 180; degrees = radians * 180 / Math.PI; //∠30°のsinを求めたい Math.sin(30 * Math.PI / 180);
Math.sinなど三角関数のメソッドにはラジアン値を与える。