タイムラインアニメーションを利用して変数を制御する
スクリプトで動きを制御する際は、数式などで動きを表すことが多く
直感的に動きを作れなかったり、思い通りの動きをさせるのにすごく時間がかかったりすることがあります。
タイムラインで作れるものはタイムラインで作っちゃえばいいのですが
変数だったり、仮想空間での座標などスクリプトからしか設定できないものもあります。
そんなときにはタイムラインでさくさくっと動きを作って、
その座標値だけをスクリプトから利用すると、すばやく直感的に動きを作れたりします。
以下の例ではPaperVision3Dのカメラの位置を、タイムラインで直感的に制御します。
タイムライン上で動かしているMCのX座標やY座標をスクリプトで取得して、
それをPaperVision3DのカメラのXYZ座標に割り当てて対応させています。
function setCameraPosition(e:Event = null):void
{
world.camera.x = cameraCtrl.xyctrl.x * 10;
world.camera.y = cameraCtrl.xyctrl.y * 10;
world.camera.z = cameraCtrl.zctrl.y * 10;
}
(EnterFrameで、フレームごとに座標を取得、割り当てしてます)
上がスクリプトで描画している画面、下がカメラの動きの参照用MCです。
参照用のMCは通常はステージ外など見えないところに置いておくといいと思います。
スクリプトでは表現しにくく作るのに時間がかかる動きも、
モーションガイドを使うことでタイムラインで簡単に作れたりするので便利です。