こんにちわ、hiro_samさん♪
”マウスが近づくと「カラー」が変化する”のほうは、リアクションありませんが…
ご理解いただけたのでしょうか(^^;?
今回のサインカーブの動きについては、おっしゃるように、
「角度を介してy座標をMath.sinを用いて表現するのだろう」ということで正解です(*^-^*)
サインカーブの方程式は、過去記事の■サインカーブ・グラフの並行移動にある、
Y = sin(回転角度+補正角度)×回転半径
各ボールMCを横一列に等間隔で並べて、
それぞれのMCに「固有の回転角度(myKakudo)」を与えておきます。
中央のMCを「0度」として左から順に例えば「-150,-120,-90,-60,-30,0,30,60,90,120,150」。
「回転半径」が上下振幅の最大値ですから、各MC共通の値、例えば「R=50」にしておくと、
各MCは、上下±50pxの範囲内で、固有の回転角度で計算されるYの値を持ちます。
これを各MCのY座標とすれば、全体としてサインカーブの線状に並ぶことになります。
そして各MCに同じ値の「補正角度(hosei)」を固有の回転角度に加算すると、
全体に同じだけシフトすることになります。
上記過去記事のサンプルで中段のバーを左右にスライドするとイメージがつかめると思います。
したがって、この「補正角度(hosei)」にボタン等から値を代入することで、
各MCのY座標を一斉に移動させることができます。
その後の処理の展開の仕方により、ボタンから値を代入するのか、さらにMCに包んで処理するのか、
考えることになりますが・・・
該当のMCが「0度」の位置(上下中央)に来るようにして他を連動させるには、
代入する値は、該当MCの固有の回転角度のマイナス符号の値にすればいいですね!
例えば、固有の回転角度が「60度」であるMCが選択された場合、「hosei = -60」とすると、
該当のMCの「実際の回転角度(kakudo)」は「0度」になり、
他もそれぞれ現在の回転角度から「-60」した値の回転角度に変化します。
各MCのクリップアクションで・・・
onClipEvent (load) {
myKakudo = -120;←myKakudoに「固有の回転角度」を設定
}
onClipEvent (enterFrame) {
kakudo = myKakudo+_parent.hosei;←「実際の回転角度=固有角度+補正角度」
Radian = kakudo * Math.PI/180;←「実際の回転角度」をラジアン角に変換
this._y = Math.sin(Radian)*_parent.R;←サインカーブ方程式で自分のY座標値を計算
}
「hosei」「R」はとりあえず「_parent」にしていますが、作られるMC構造にあわせてください。
そしてその「_patent」等に相当するMCで「R = 50;」と回転半径を定義し、
その中のボタンであれば、各々MCの真下に透明ボタンを置き、
on(rollOver) {
hosei = -120;←該当のMCで定義したmyKakudoのマイナス符号の値を代入
}
一例ですが、このような感じになります(^^g/~~
|