FlashのASついての質問です。

以下のサイトの中にあるzoommenuというflashについて
http://www.mdn.co.jp/webcre/Volume/Vol31/Special/03/index.html

http://www.mdn.co.jp/webcre/Volume/Vol31/Special/03.lzh


boxというムービークリップの中に以下のような
スクリプトがありますが、伸縮スピードなどを調節する為にどのような考えで書かれているのか分かりやすく教えてください。

function resizeBox() {
vSize = (targetSize-_height)*0.15+vSize*0.6;//伸縮スピード
_height += vSize;
//
if (_height>zoomSize-2) {
_parent.discription._visible = true;//詳細表示
} else {
_parent.discription._visible = false;//詳細非表示
}
}

回答の条件
  • 1人2回まで
  • 登録:2006/06/30 22:38:19
  • 終了:2006/07/01 11:44:07

回答(1件)

id:kakicg No.1

kakicg回答回数44ベストアンサー獲得回数32006/07/01 09:25:41

ポイント60pt

あるボックスがロールオーバーされると、その間フレーム毎にresizeBox()が呼び出されます。resizeBox()ではロールオーバーされたボックスの高さがその状況に応じて変更され自動的に描画されるので、連続してresizeBox()を呼び出せば結果的に動いて見えるという仕掛けです。

  • zoomSize(グローバル変数)はロールオーバーして最大化された状態のボックスの高さ
  • targetSize(グローバル変数)目的のボックスの高さ。ロールオーバーのときにはzoomSizeが、ロールアウトのときには縮小されたボックスの高さが代入されます。
  • vSize(グローバル変数)はボックスの高さが変更される速度です。前のフレームのボックスの高さが何ピクセル変化するかを表します。
  • (targetSize-_height)は目標の高さと現在のボックスの高さ(_height)の差が何ピクセルか。
  • 「vSize = (targetSize-_height)*0.15+vSize*0.6」
    • 「vSize*0.6」vSize(高さの変化)は前フレームの高さの0.6倍になるので変化のスピードは徐々に小さくなりやがてほぼゼロになったところで停止します。(0.6の数値を変えると減衰の度合いを変えることができます。)
    • 「(targetSize-_height)*0.15」この値を加えることで目標の高さと現在の高さの差が大きいほど変化するピクセル数が加算されます。(0.15の数値をさらに大きくすると最初の動きがさらにシャープになります。)
  • 「if (_height>zoomSize-2)」ボックスの高さが最大化の高さ-2より大きくなったらこのボックスの親にある詳細情報を表示します。
  • 「else」ボックスが縮小されzoomSize-2以下の高さになったらこのボックスの親にある詳細情報を隠します。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません