auサイトのスライドメニューFLASHについて

このQ&Aのポイント
  • auサイトのようなスライド形式のメニューを作成しています。メニューの開閉がスムーズに動作するが、コンテンツボタンの動作に問題がある。
  • ロールオーバーしたときにメニューをスライドさせ、その後にコンテンツメニューを表示するが、コンテンツボタンにロールオーバーするとメニューが閉じようとする現象が発生する。
  • auサイトのようにメニューがクローズアップされ、コンテンツボタンも正常に動作する方法はないか。
回答を見る
  • ベストアンサー

auサイトのようなスライドメニューのFLASHについて

[au] http://www.au.kddi.com/ auサイトにあるようなスライド形式のメニューを作成しています。 スライドしてスムーズに開く仕組みは出来ましたが、開いたときに現れるコンテンツボタンがうまく機能しませんので質問させて頂きます。 重ねて表示しているメニューの1つ1つは複数のMCで作成しており、それぞれロールオーバーとロールアウトでスライドを制御しています。 ロールオーバーになったときにメニューを大きくスライドさせてから、コンテンツメニューを表示しますが、ここで問題があります。 ロールオーバー設定をしているメニューMCの上に、コンテンツボタンMCを設置することになるので上手く機能しません。 MCボタンの上にMCボタンがあるような状態です。 症状としては、コンテンツボタンにロールオーバーすると、開いていたメニューMCが閉じようとする現象が発生します。 auサイトのようにメニューがクローズアップされて、コンテンツボタンにも問題なく動作するようにしたいのですが何かよい方法はありませんか? 宜しくお願いします

  • kosa
  • お礼率14% (46/319)
  • Flash
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
noname#35109
noname#35109
回答No.3

#1&2です。 どこで詰まっていらっしゃるのか,結局よくわかりませんが, とりあえず hitTest の方を使用するわけですよね。 #1の補足で,そこまでは理解出来ました。 一度, メニューMC自体は動かさないという, 止まったところで考えれば良いのではないでしょうか? 注意する点としては hitTest は,ムービークリップクラス の hitTest メソッド, MovieClip.hitTest() http://livedocs.macromedia.com/flash/8_jp/main/00002475.html もしくは,ビットマップデータクラスの hitTest メソッド, BitmapData.hitTest(); http://livedocs.macromedia.com/flash/8_jp/main/00001958.html ですから, 小さいボタンもムービークリップで用意する必要があります。 メニューMC内のタイムライン  [メニューMC]  ラベル名     | out   | over  □ レイヤー筆・・|○  []|●//[]| ←ボタン(MC)  □ レイヤー筆・・|●////////[]| ←塗りや写真  メニューMC 内 フレームラベル over 時の  ステージを見たときの例↓  ┌────メニューMC─────┐              ↓ボタンMC×3  □□□□□□□□□□□□□□□  □□□□□□□■■■■□□□□    □□□□□□■■■■□□□□    □□□□□□□□□□□□□□    □□□□□□■■■■□□□□    □□□□□□■■■■□□□□    □□□□□□□□□□□□□□    □□□□□□■■■■□□□□    □□□□□□■■■■□□□□    □□□□□□□□□□□□□□ 最初,「メニューMC」の中にはボタンは表示されていない状態です。 つまり,「メニューMC」の フレーム1 に「ボタンMC×3」は存在していません。 そして, 「メニューMC」に ロールオーバー すると, 「メニューMC」内のフレームが移動して,「ボタンMC×3」が存在するフレームに達するわけです。 そのときに,「ボタンMC×3」のスクリプトが有効になれば良い。 ただそれだけのことでしょう。 「ボタンMC×3」には, 上から順に 「btnMC1」,「btnMC2」,「btnMC3」というインスタンス名を付けたとしておきます。 メインムービーの編集に戻って, 「メニューMC」を選択して,そこに次のようなスクリプトを書けば良いと思います。 ----------------------------------- // この メニューMC が表示されたとき onClipEvent (load) { // メニューMC 内のフレームをストップ this.stop(); } // // この メニューMC に ロールオーバー したとき on (rollOver) { // フレームラベル "over" に移動 this.gotoAndStop("over"); } // // この メニューMC から ロールアウト したとき on (rollOut, dragOut) { // フレームラベル "out" に移動 this.gotoAndStop("out"); } // // この メニューMC をクリックしたとき on (release) { // もし btnMC1 がマウスカーソルとヒットしていれば if (this.btnMC1.hitTest(_root._xmouse, _root._ymouse, true)) { // 何か動作させる getURL("001.html"); } // もし btnMC2 がマウスカーソルとヒットしていれば if (this.btnMC2.hitTest(_root._xmouse, _root._ymouse, true)) { // 何か動作させる getURL("002.html"); } // もし btnMC3 がマウスカーソルとヒットしていれば if (this.btnMC3.hitTest(_root._xmouse, _root._ymouse, true)) { // 何か動作させる getURL("003.html"); } } ----------------------------------- 最初にも書きましたが, これは,「メニューMC」自体は動き出さない, 止まったところでの場合のスクリプトです。 「メニューMC」自体を動かすスクリプトはどうされているのかわかりませんから, 答えられませんし,この件とは関係ありませんね。 「メニューMC」内のフレームを移動させて, そこにある「ボタンMC×3」のボタンをクリックする場合についてだけのスクリプトです。

kosa
質問者

お礼

私は大きな勘違いをしていました。 メニューMCに記述すべきスクリプトをスライド時に表示されるボタンMCの方に記述してしまっていました。 大変、お騒がせしました。 長い間、お付き合いして頂いたし、すごく丁寧に教えて頂いたし、本当に感謝しています。ありがとう!! Flashを勉強中なので、またココで「sassakunさん」にお世話になるかもしれません。その時はまた宜しくお願いします。

その他の回答 (2)

noname#35109
noname#35109
回答No.2

#1です。 > 肝心のコンテンツボタンは、スライドしたとき(ラベル名:overになった時)のみ > 表示させたいのですが、これが上手く動作しません。 と書かれていますが,全体像が把握できないため何とも言えません。 http://www.alpha-dental.jp/innai/innaisyoukai.htm ↑ココが似たような手法を取り入れていますが, こういう方法ではだめなのでしょうか? そのページは, 「クリック( on(release) )」と同時に,コンテンツMC自体が移動するとともに,その中が動きます。 つまり,MCの「クリック( on(release) )」と同時に, MC内を play(); させているのです。 つまり単純に, 「クリック( on (release) )」 ではなく, 「ロールオーバー( on (rollOver) )」 で, play(); させれば良いだけではないでしょうか。 on (rollOver) { this.play(); } 柔軟に考えてください。 hitTest なんかにこだわる必要は全くありません。

kosa
質問者

補足

>全体像が把握できないため何とも言えません。 わかりにくい説明でごめんなさい。 目指しているのは、本当にauサイトのトップページにあるFLASHそのものなんです。 auの場合は、5つのメニューMCが重なっている状態であり、マウスカーソルを当てるだけでスライドします。 (ここまでは問題なく作成できました) 更にスライドしてから、メニューMC内にコンテンツボタンが出現します。 カーソルを外すと、まずコンテンツボタンが消えて、そして最後にスライドして閉じます。 ↑↑↑ これを実現させたいのですが上手くいかずに困っています。 今の状態では、メニューMCにカーソルを当てるとスライドして開きコンテンツボタンが出現します。 しかし、コンテンツボタンにカーソルを合わせた瞬間に、コンテンツボタンが消えて、現れてを交互に繰り返します。 コンテンツボタンに「rollOve」した瞬間に、大ボタンでは「rollOut」になり、これを繰り返している為だと思います。 コンテンツボタン = 小ボタン [メニューMC] ラベル名|out  |over 小ボタン|     |●--- 大ボタン|●----------- スライドした時だけに、コンテンツボタンを表示させたいので、ラベル名(out/over)をつけて 大ボタンのrollOve/rollOutでラベル位置にgotoさせています。 基本的に作り方を間違えているのでしょうか? まさに泥沼にハマった感じで、ここから抜け出せずに困っています。 そして、文章で説明するのも下手ですみません。

noname#35109
noname#35109
回答No.1

その,ページのFlashに関して, 一年以上前に,回答したことがあります。 「hitTestのロールアウト判定」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1566216  ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1566216 話が込み入っていますが,これ↑を簡単に言うと, こういうことです↓。 「質問:rollOverで動きながら出現し、rollOutで逆再生で消えていくメニュー」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2098181  ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=2098181 良かったら参考にしてみてください。 もしくは,上のURLで質問者の方が書かれているように, hitTest を使うかです。 hitTest でする方法に関しては, ここ↓で#1の回答者の方が詳しく方法を書かれています。 「質問:onClipEvent(load)かhitareaの問題かと・・・わからない」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1506352  ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1506352

kosa
質問者

補足

コンテンツボタンがスライドの有無に関わらず、常に表示する場合は下記のようにして 教えて頂いた「hitTestのロールアウト判定」にあるように、小ボタンにも大ボタンと同じ「rollOver」の処理を記述することで実現できました。 メニューMC---スライドする1つのメニュー 大ボタン---透明ボタン 小ボタン---コンテンツボタン [メニューMC] 小ボタン|●----------- 大ボタン|●----------- しかし、肝心のコンテンツボタンは、スライドしたとき(ラベル名:overになった時)のみ表示させたいのですが、これが上手く動作しません。 [メニューMC] ラベル名|out  |over 小ボタン|     |●--- 大ボタン|●----------- 「hitTest」を使えば上記の方法は可能なのでしょうか?

関連するQ&A

  • こちらのサイトの様なFLASHスライド&メニューの作り方を教えてくださ

    こちらのサイトの様なFLASHスライド&メニューの作り方を教えてください! http://www.zibunzikan.com/ 当方はCS4 windows環境です。 こちらのサイト(http://www.zibunzikan.com/)のトップにあるFLASHメニューが作りたいです。 構造は全く同じで、上部で左右の矢印でスライドが動く。下のサムネールをクリックしても連動してスライドが動く。 そして、メインにきたメニュー(画像)をクリックすると該当コンテンツへリンク。 サイズはブラウザ上で横100%で作成したいです。 このtipsをお教えていただけますでしょうか? 制作環境はcs4になります。

    • ベストアンサー
    • Flash
  • Flashでスライドメニューを作りたいのですが…。

    こちらのサイトhttp://www.sebacs.co.jp/のような menuをスライドさせてリンクで各ページに飛ばすというスライド式Flashを作成しているのですが、各メニューにリンクを貼る箇所でつまずいてしまうので、教えていただきたく思います。 はじめは過去ログを参考にhttp://www.condo.fromc.jp/flash/memo/index.htmlのサンプルで作成していたのですが、http://kikitai.teacup.com/search.php3?dummy=%83%81%81%5B%83%8B&kw=%83X%83%89%83C%83h%8E%AE%83%81%83j%83%85%81%5B&submit_search=%8F%88%97%9D%92%86...&category_id=564などで調べていくうちにスクリプト自体に問題があるということでしたので 現在http://exyz.cocolog-nifty.com/good_sleep/2007/12/au_45b8.html#moreの方法で作成をしています。 が、スライドさせることはできたのですが、そこから各パネルにリンクをはることができません。 Flash作成環境はWinXPのAdobe FlashplayerCS3 proで今年からFlashを勉強しはじめたのであまり詳しいとはいえないですが、今回の一連で勉強していくうちに透明ボタンが必要であることやボタンが重なりあった領域でマウス操作をすると手前のインスタンスしかイベントを受け取れないことは理解いたしました。 が、肝心のActionScriptをどのようにかけばわからず、ここでつまずいてしまいます。 お手数ですが、どなたかお教えいただけると幸いです。

    • ベストアンサー
    • Flash
  • フラッシュ、ロールオーバーでスライドするメニューを作りたいのですが

    ?http://www.au.kddi.com/? こちらのauのサイトのトップページのスライドするメニューを 作成したく、 http://www.condo.fromc.jp/flash/memo/index.html ここの5つ目の「スライド式メニュー」を使わせてもらったのですが、 こちらのファイルでは、ロールアウトした際に、全てのタブが 右に戻ってしまいます。ロールアウトした時は、タブを等間隔に 戻す様にしたくて、スクリプトをいろいろといじってみて どうしてもできません。以下のスクリプトのままでは、 右に戻ってしまうのは理屈ではわかるのですが、 計算式がいまいちわかりません。 こちらはどのように修正すればよいのでしょうか? onClipEvent (load) { nMyNum = 0; nTotal = 4; nMinX = 5; nMaxX = 468; nDest = nMaxX; nDelay = 10; this.hitArea = button_mc; function xSetDest(nNum) { var i = 1; while (i<=nNum) { _parent["cont"+i+"_mc"].xSetMove("left"); i++; } while (i<=nTotal) { _parent["cont"+i+"_mc"].xSetMove("right"); i++; } } function xSetMove(sDest) { switch (sDest) { case "left" : nDest = nMinX; break; case "right" : nDest = nMaxX; break; } this.onEnterFrame = xMove; } function xMove() { nNextX = this._x+(nDest-this._x)/nDelay; if (Math.abs(nDest-nNextX)>0.1) { this._x = nNextX; } else { this._x = nDest; delete this.onEnterFrame; } } } on (rollOver) { this.xSetDest(nMyNum); }

    • ベストアンサー
    • Flash
  • 外部読み込み画像のスライドメニューの動き

    Flash初心者です。 環境:WindowsXP,Flash8,as2.0 独学でFlashを学んでいて、練習として下記URLのFlashを制作しています。 http://homepage2.nifty.com/meary/ まず、外部読み込みの画像(サムネイルのようなもの)をボタンとしています。 そして、そのボタンをまとめてMCにして、 上下のスクロールボタンをクリックするとそれぞれ上下にスライドする、というところまで制作出来ました。 ですが、私の希望の動きはドコモのサイト http://www.nttdocomo.co.jp/ のFlash部分、下の方のFlash用コンテンツメニューの様な動きなのです。 スクロールボタンをクリックしなければ「ボタン部分のMC」は一定時間ごとにスライドし、出来れば「ボタン」にロールオーバーしている間は「ボタン部分のMC」を停止させる。マウスが離れたらまた動き出す。 初心者ながら、ネットや本でASを調べてみましたが、 うまくこのように動いてくれず行きずまってしまいました。 上述の様な動きをさせるにはどのようなASを記述すればいいのか、やりやすいのか、ご教授いただけませんでしょうか。

  • auのトップにあるようなFLASH

    au by KDDIのトップページにある、自動でメニューがスライドしたり手動でメニューを選択したりして 尚且つメニューの横に出る大きい画像をクリックするとリンク先へ移る事が出来る FLASHを作成したいなと思っているのですが、参考になるサイトなどご存じありませんでしょうか? かなりの初心者でして、無理と言われてしまえばそれまでなのですが。 宜しくお願い致します。

  • スライドメニュークリックで外部swf

    はじめまして。どうしても解決できなかったので質問させていただきます。 参考図 Γ ̄ ̄ ̄ ̄ ̄ ̄  |     A     | ←表示したいフィールド L______」 ■■■■■■■■ スライドメニュー 上記の参考図(ずれてますがw)のような構成です。 そこで一つ一つのスライドメニュー「■」をクリックすることで外部swfを表示させたいのですがどのようにしたらよいのか悩んでいます。 スライドメニュー自体はそれぞれをボタン作成し、まとめてMC名:btn_allにしてマウスポインタによってスライドされます。 お手数ですが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flashで作ったメニューが消える

    Flash4でHPのメニューを作って・・・ 上下にフレームをわけ、下の部分にそのメニューを入れてるのですが、ブラウザで空白の部分をクリックしたり、メニューのボタンを押してGetURLをするとメニューが消えてしまいます。(またマウスをのせるとロールオーバーみたく出てきますが) ボタンにたくさんアクションつけてるのが原因なのでしょうか・・・でもムービークリップtellTargetのロールオーバーとロールアウト、マウスダウンでGetURL・・・といったごくごく普通のことしかしてないんですが。一応アクションを見直したりしたのですがこれといった原因が見つからないのです。 何か思いつくこと、あったら教えて下さると助かります。OSはMacです。

  • flashによるメニュー

    flashのボタンをロールオーバーさせたときに、メニューがスッと 現れるボタンを作成したいのですが、(下記URL参照) http://www.toyota.co.jp/ どのように作成したらいいのか・・ またはやり方が紹介されているページはありますか? 特にメニューが表示され、マウスを離したあとに、 元のボタンに戻るアニメーションのやり方がわかりません・・ マウスカーソルを合わせたときに、ムービークリップを使って アニメーションさせる程度の知識はありますが、 上のページのような、カーソルを合わせたら、上から下にサーっと流れてくるようなアニメーションのやり方もよくわかりません・・ よろしくお願いいたします。

  • スライド式メニューについて

    お分かりになりましたら教えて下さい。 http://www.condo.fromc.jp/flash/memo/index.html こちらのサイトの上から5番目の「■スライド式メニュー (2003/11/2)」を参考にして現在制作しております。 サンプルでいいますと[コンテンツ1]の文字部分をボタンにして、 クリックすると他のページに飛ぶようにしたいと 考えておりますが、ただスライドされてしまうだけで出来ません。 また、どうしてそうなってしまうかはわかりましたが 知識が足らずボタンにする事が出来ませんでした。 どうすれば他のページへ飛ぶように出来るか 教えていただけませんでしょうか。 環境は [Windows XP Flash MX 2004] です。

    • ベストアンサー
    • Flash
  • FLASHドロップダウン(?)メニュー

    さきほど http://oshiete1.goo.ne.jp/kotaeru.php3?q=714572 で質問させていただいたのですが状況が変わったので再度質問させていただきます。 【★】というボタンにロールオーバーするとメニューが下記のように出てきて、さらにロールアウト(メニューも含む)するとメニューが戻るというようにしたいのです。 【★】  ↓ロールオーバー 【★】自己紹介 掲示板 【★】ボタンは画像1と画像2からなってます。 透明のレイヤーを入れればいいのかと思い、画像2にメニューのすべてが収まるように透明な四角を描いた所意図する動きになりました。 が!メニューのボタンが生きてこないのです。 あたりまえですが、透明の四角の下にボタンがあるので、ロールオーバーにならないのです。 逆にボタンの方を下に配置してしまうと、【★】からマウスが離れたとたんメニューが戻ってしまいます。 どのようにしたらいいのでしょうか?