• ベストアンサー

このflashどうやるのか教えて下さい。

http://www.fatboyslim.net/start.htm このサイトの左側の文字のボタンは裏にカラーのバーがついてきます。 タイムラインで作ると次の所へ飛んでしまうので、 このようになめらかについてきません。 だれかご存知の方いましたら教えて下さい。 また、これに応用できるやり方を書いてあるサイトや、色んなFLASHの作り方を紹介しているサイトをご存知でしたら そのページのURLを教えて下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • perse
  • ベストアンサー率74% (113/152)
回答No.1

やり方はいろいろあると思いますが、 メニューとバーをムービークリップ(MC)で作成して、 マウスがメニューの上に乗ったとき(ロールオーバー時)に バーをそのMC位置まで移動させるというやり方でやると、 Home、News、Links などのメニューをMCで作成しステージ上に縦に並べて 上からmenu1_mc、menu2_mc、menu3_mcとインスタンス名をつけます。 メニューの後ろを動くMCを作成しステージに配置、 インスタンス名をbar_mcとします。 Home (MC) インスタンス名 : menu1_mc News (MC) インスタンス名 : menu2_mc Links (MC) インスタンス名 : menu3_mc //以下、ActionScriptです。フレームに記述してください。----------------------- //メニューにロールオーバー時に実行する関数を指定する for (var i = 1; i<=3; i++) { _root["menu"+i+"_mc"].onRollOver = btnRollOver; } //ロールオーバー時に実行される関数---------------- function btnRollOver() { //onEnterFrame を止める for (var i = 1; i<=3; i++) { _root["menu"+i+"_mc"].onEnterFrame = null; } //onEnterFrameで実行される関数を指定する this.onEnterFrame = barMove; } //onEnterFrameで実行される関数------------------- function barMove() { //ロールオーバーされたMCとバーMCの位置の差を計算する //そのままだと動きが早いので適当に3で割る var y = (this._y-_root.bar_mc._y)/3; _root.bar_mc._y += y; //移動が終わったらonEnterFrameを止める //メニューMCとバーMCのy座標が同じになったときに止める if (Math.floor(_root.bar_mc._y) == Math.floor(this._y)) { this.onEnterFrame = null; } }

channel-88
質問者

お礼

すばらしい回答ありがとうございます。 ついてくるスピードも完璧でした。 助かりました。 本当に本当にありがとうございます。 これを応用して下に行くにしたがって、バーの形をかえたいのですが、 なにかいい方法はないでしょうか? イメージでは矢印が画面右からボタン方向にのびていて 矢印の支点は固定で先だけがマウスをおいかけボタンを 指すんですがどうしたらういいか教えて下さい。 よろしくお願いします

関連するQ&A