Thursday, July 17, 2008
AE / moveCircular
正円の軌跡で移動するオブジェクトのカスタム・キー「moveCircular」を作って、必要なプロパティを設定します。これは正円上の軌跡で移動と言う事で、必ずしもグラフィックの円を描かなくても、円のセンターと半径を設定すれば動くようです。
-- グラフィック「movingBlue」を作ったら、メッセージボックスから
send moveCircular to grc "movingBlue"
を送ると、カスタムキー「moveCircular」が grc "movingBlue" に作られて、プロパティのデフォルト値が以下のように書き込まれます。カッコ内はデフォルトの値
centerX 軌跡になる円のセンターX (grc "movingBlue"のあった X)
centerY 軌跡になる円のセンターY (grc "movingBlue"のあった Y)
isAngle 軌跡になる円の arcAngle (1)
isRadius 軌跡になる円の半径 (50)
step 移動するオブジェクトのスピード (1)
移動する軌跡がわかりやすいように、上の値を元に円を作ります。width, height ともに 100 ピクセルの円(半径 50)、ロケーションは grc "movingBlue"のあったX,Y で円を作ると(サンプルは 200,160)、 grc "movingBlue"は arcAngle 1 の位置に移動します。これで grc "movingBlue" に、moveCircular を送るとこの円上の軌跡で移動します。
-- ボタン「startStop」を作って、円上で移動するスクリプトを書き込みます。
-- movePoligonal のスタートストップとまったく同じです。
on mouseUp
if the flag of me is empty then set the flag of me to false
set the flag of me to not the flag of me
if the flag of me then hereWeGo
end mouseUp
on hereWeGo
send moveCircular to grc "movingBlue"
if the flag of me then send hereWeGo to me in 20 milliseconds
end hereWeGo
これでボタンをクリックすると、step 1 のスピードで時計回りにオブジェクトが移動します。
-- スピードを上げるには “step” の数を増やします
set the moveCircular["step"] of grc "movingBlue" to 3
-- 反対回り(左回り)にするには、“step” の数をマイナスにします
set the moveCircular["step"] of grc "movingBlue" to -4
始めにAnimation Engineを開いて、start using stack "animationEngine"
サンプルスタックは、下記をメッセージボックスにコピペしてリターンキーを
go stack url "http://homepage.mac.com/kenjikojima/jrevnote/moveCircular.rev"