D0507161 サインカーブ状に配置したMCにマウスが乗るとうねうね動く
Name hiro_sam
Date 2005年07月16日 (土) 00時46分
Message 憲ちゃん様
いつもお世話になっております。またひとつわからないところが出てきてしまったので、ご教授願いたいとおもい書き込みさせていただきました。まずは、問題のサイトのURLを以下に記述しておきます。少々音は激しめですが(汗)。
http://www.widegroup.net/broadband/base.htm
ボタンがサインカーブ状に配置されているメニューが表示されていると思います。そのいずれかのボタンにマウスが乗るとサインカーブでいうところの0°の位置に来るようにy座標が移動します。それ以外のMCはそのマウスが乗っているインスタンスをサインカーブで連続につながるようにそれぞれがまたy座標を変えています。細かい動きは「目標値接近ゆらゆら方程式」で記述することはわかるのですが、それを除いた、その他の動きがうまく表現できません。角度を介してy座標をMath.sinを用いて表現するのだろうと思って試行錯誤してますが、上述したサイトのような動きを表現することができません。この動きはどうやって表現すればよいでしょうか?ご教授よろしくお願いいたします。
Response 01
2005年07月17日 (日) 16時33分> 憲ちゃん 
こんにちわ、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/~~
Response 02
2005年07月18日 (月) 03時10分> hiro_sam 
憲ちゃん様、ご丁寧な対応ありがとうございます。
そして、前回のアルファ値を距離によって変化させる件へのレスが無くて申し訳ありませんでした。あの件は理解できました。なるほどーという感じです、ありがとうございます!

 今回の件についても勉強してみたいともいます。そして、必ず報告したしますので、しばしのあいだお待ちお願いいたします。
Response 03
2005年07月19日 (火) 02時31分> hiro_sam  del
アドバイスいただいたところを理解したので、報告させていただきます。ちょっとした効果音がついていますが、音が無いってのもなんだとおもって(汗)

憲ちゃんさん、ありがとうございます。
今後とも、よろしくお願いいたします。
Response 04
2005年07月19日 (火) 23時27分> 憲ちゃん 
さすがです!!hiro_samさん(*^-^*)

憲ちゃんもサンプル置いておきます(^^;
 

sin_button.fla

.

このページの先頭へ