rollOverで動きながら出現し、rollOutで逆再生で消えていくメニュー

このQ&Aのポイント
  • rollOverで動きながら出現し、rollOutで逆再生で消えていくメニューを作っています。
  • MC内に複数配置したリンクボタンが機能しないため、どうすればよいか悩んでいます。
  • ボタンからはgetURLを使用してHTMLファイルへのリンクを行っています。
回答を見る
  • ベストアンサー

rollOverで動きながら出現し、rollOutで逆再生で消えていくメニュー

rollOverで動きながら出現し、rollOutで逆再生で消えていくメニューを作っています。 MCに下記スクリプトを記述することで再生・逆再生は実現できたのですが、 MC内に複数配置したリンクボタンが機能しません。 リンクはHTMLファイルへのリンクです。 どうすればよろしいでしょうか? 記: onClipEvent (load) { nMove = 0; } onClipEvent (enterFrame) { if (nMove != 0) { nNextFrame = this._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=this._totalframes) { this.gotoAndStop(nNextFrame); } else { nMove = 0; } } } on (rollOver) { nMove = 1; } on (rollOut) { nMove = -1; } MC内に配置しているボタンからは on(release){ getURL("aaa.html"); } といった記述をしています。

  • Flash
  • 回答数1
  • ありがとう数1

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

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

私なら, そのムービークリップ内のタイムラインの一番下のレイヤーに, 透明なムービークリップを用意して, そのムービークリップに同様のスクリプトを書きます。 そして, その透明なムービークリップより上のレイヤーにボタンを配置します。 ただし,パスが変わるので -------------------------------- nNextFrame = this._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=this._totalframes) { this.gotoAndStop(nNextFrame); } else { nMove = 0; } -------------------------------- の部分の this を _parent に変え -------------------------------- nNextFrame = _parent._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=_parent._totalframes) { _parent.gotoAndStop(nNextFrame); } else { nMove = 0; } -------------------------------- とします。 また,どうしても, 書いているムービークリップに書きたい場合は, ボタンに hitTest を使います。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1937529  ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1937529 実は上の回答は,次の回答を参考にして発想しています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1506352  ↑教えて!goo  ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1506352 まぁ,でも hitTest を使うより, 最初に書いた方法の方が簡単です。

TMEspion
質問者

お礼

回答、ありがとうございます。 早速試してみたいと思います。

関連するQ&A

  • ボタンrolloverで画像を変えたいのですが。

    ステージには3個のボタンと4つのMCがあります。 基本となるMCを「MC1」とします。 動画のスタート時は3個のボタンと「MC1」だけが画面に見えています。 3個それぞれのボタンをrolloverでそれぞれに対応する3つのMCに変わり、各ボタンがrolloutした時には、「MC1」に戻る。と、いうアクションスクリプトを書きたいのですが、rolloutした時にどうしても「MC1」に戻ることができません。 on(rollOver){ _root.xxx._visible=true; } on(rollOut){ _root.xxx._visible=false; _root.MC1._visible=true; } 以上をボタンのアクションにそれぞれ書いたのですが、 動きませんでした。 Flash初心者で本で調べたり、ネットでかなり調べたのですが アクションスクリプトの基本がわからず、書き方がわからなくなっております。宜しくお願い致します。

    • ベストアンサー
    • Flash
  • FLASHのボタンの動作(他のボタンにロールオーバーしたら…)

    AというボタンとBというボタンがあります。 Aには on (rollover) { this.gotoAndPlay(2); } on(rollout){ this.gotoandplay(6); } というアクションがついていますが、 「rollout」ではなくて、「Bのボタンにrolloverしたら」というように変えたいのですが、 どのように記述したらよろしいでしょうか? よろしくお願いします。

  • swfobject:配置したflash内のボタンをクリックしても反応が無い

    お世話になります。 swfobjectで配置したflash内のボタンが、 マウスオーバーのアクションはしますがその後、クリックしてもリンク先に飛ばずに困っています。 ボタンは以下のような仕組みになっています。 ※配置したムービークリップに、以下のスクリプトを入力してボタンにしています。 onClipEvent (load) { this.stop(); flag = "0"; } on (rollOver) { flag = "1"; } on (rollOut, dragOut) { flag = "2"; } onClipEvent (enterFrame) { if (flag == "0") { this.stop(); } else if (flag == "1") { this.nextFrame(); } else if (flag == "2") { this.prevFrame(); } } on (release) { getURL("http://www.test.com"); } 静止しているボタンのような形のMCにマウスオーバーでアニメーションして(光る等)、 クリックしてリンク先に飛ぶようになっています。 ※swfobjectではなく通常の埋め込み方法では、動作確認済みです。 アニメーションに関係するスクリプトは、この問題に関係ないかとは思いますが、もし何か原因の一つであったらと思い記入致しました。 swfobjectでは、ボタンでリンクするのに何か特殊な事が必要なのでしょうか? それとも、上記スクリプトに何か原因があるのでしょうか? 何か小さな助言だけでも大変助かりますので、 ご存知の方、何卒よろしくお願いします。

  • rollover時に、MCを動かしたい。

    ↓のような、flashを作りたいのです。 ttp://www.muratec.jp/index.html (最初にhを入れてください) 左のrolloverボタンはできたのですが、 rollover時に右に段々表示される画像を再生させる、 というactionscriptがよく分からず、動きません・・・。 全部シーン1でやっています。 ・レイヤー1 ボタンシンボル5つほど。 左のボタンを1つずつ分けて作ったものを用意して、 1つずつボタンシンボルで、フレーム1に。 ・レイヤー2からレイヤーレイヤー6 5枚の画像を用意して、MCにシンボル化。 それぞれフレーム1~5フレームに、 アルファ0からアルファ100にいくモーションを作成。 レイヤー7 アクションスクリプト 最初の1フレームと5フレーム目にstop(); ・ボタンシンボル アクション(gazou22_mcは、MC名です) on (rollOver){ this.gazou22_mc.gotoAndPlay(1); } ・MCの方の記述がよくわからず、動きません。。 何か作成方法等に関してなどありましたら、 合わせてアドバイスおねがいします。 よろしくおねがいします。

    • ベストアンサー
    • Flash
  • 3つのムービークリップ再生・巻き戻しの順番制御

    初めまして。 初心者につき、基本的な事だとは思うのですが、調べても分からなかったため、こちらで質問させて頂きたいと思います。 3つのムービークリップ(a_mc,b_mc,c_mc)【フレーム数30】と、 各々を再生させるためのボタン(A,B,C)を使って、 b_mcを再生中にAのボタンを押すと、b_mcを巻き戻した後で、 a_mcを再生するといった感じで3すくみのような状態にしたいのですが、b_mcの巻き戻しとa_mcの再生が同時に行われてしまいます。 現在のActionScriptは以下のようなものなのですが、どなたかご教授願えませんでしょうか? よろしくお願いいたします。 ボタンAのスクリプト on (release) { //Cの巻き戻し _root.c_mc.onEnterFrame = function() { if (this._currentframe>=2) { this.prevFrame();} else {delete this.onEnterFrame} } //Bの巻き戻し _root.b_mc.onEnterFrame = function() { if (this._currentframe>=2) { this.prevFrame();} else {delete this.onEnterFrame} } //BでもCでもないときの判別式? //Aの再生 _root.a_mc.onEnterFrame = function() { if (this._currentframe<=29){ this.gotoAndPlay(this._currentframe); delete this.onEnterFrame} } }

    • ベストアンサー
    • Flash
  • フラッシュで逆再生中の停止について

    新米です。分かる方教えてください。 FlashMXを使っていますが、ムービーの再生中は停止ポタンが機能するのですが、逆再生中は停止ボタンが機能しません。逆再生ボタンに書き込んでいるアクションスクリプトが悪いと思うのですが、詳しい方お教えください。 逆再生ボタンには下記のアクションスクリプトを書き込んでいます。 on (release) { photo.onEnterFrame = function() { photo.gotoAndStop(photo._currentframe -=1); if (photo._currentframe ==1) { photo.gotoAndStop(); } }; }

  • ムービークリップに配置したボタンを作動させるには?

    Flash初心者のものです。 現在、FLASHで簡単な地図を作成しているのですが スクリプトを記述し、オンマウスによるスライド動作を表現したムービークリップ(インスタンス名:mc_sride)の中にボタン(インスタンス名:btn_a)を配置して、そこをクリックすると 地図の座標が移動するというような動きを実現したいのですが、 なかなかうまくいきません。 メインのムービーにボタンだけを配置した場合はうまく作動するのですが、 それを前述したムービークリップの中に配置すると そのボタンがまったく作動しないのです。 マウスが乗っても反応がありません。 相対パスはきちんと記述しているのですが・・・ どうすればうまく作動するようになるのでしょうか? ちなみにmc_srideのスライド動作のスクリプトは onClipEvent (load) { var div:Number = 0.5; var move_to:Number =730 this._x = 730; } onClipEvent (enterFrame) { this._x += (move_to-this._x)*div; } on (rollOver) { this.move_to -=100 } on (rollOut) { this.move_to +=100 } になります。 ボタンをうまく機能させる方法をご存知の方がもしいらっしゃたら、お手数ですがご指南願います。

    • ベストアンサー
    • Flash
  • flash:ムービークリップの制御

    誠に不勉強の段お許しください。 Flashで知人のサイトを製作しているのですが、どうしてもうまくいかず投稿させて頂きました。使用してる環境;ソフトはMacOS10.4.11:Flash8.0です。 (1)動かしたい内容は、-rootにムービークリップのスプレー缶があって、それにロールオーバーすると少し上がり指が現れ、そこで止まる。(ムービークリップ10フレーム目で停止) (2)ロールアウトすると逆戻りで元の位置に戻る。 (3)(1)の止まった状態でプレスすると10フレーム目から進み(スプレーされるアクションが入り)指定アドレスに飛ぶ。(ムービークリップ15フレーム目でgetURL) この様な、動きをさせたいのですが 様々解らないなりに調べて、何とか15フレーム目までいって止まり、その逆戻りまでは出来たんですが、10フレーム目で一旦止める事が出来ません...。 onClipEvent (load) { nMove = 0; } onClipEvent (enterFrame) { if (nMove != 0) { nNextFrame = this._currentframe+nMove; if (1<=nNextFrame && nNextFrame<=this._totalframes) { this.gotoAndStop(nNextFrame); } else { nMove = 0; } } } on (rollOver) { nMove = 1;} on (rollOut) { nMove = -1; } 大変恐縮ですが、 なにとぞご教授いただけましたら幸に存じます。

    • ベストアンサー
    • Flash
  • マウスホイールで地球儀を回転させたい

    質問です。 下記のスクリプトは地球儀をマウスで回転させるという物なのですが、 これをマウスホイールで回転させるためにframeにxmouseの値ではなくonWheelMouseの値を与えたいのですが、記述の仕方がわかりません。 知恵を貸してください。 on (press) { function run(mc) { cur = Math.floor((_xmouse - w1) / 10); pre = !pre ? (cur) : (pre); frame = cur - pre; frame = frame > 4 ? (4) : (frame); frame = frame < -4 ? (-4) : (frame); if (mc._currentframe + frame >= mc._totalframes) { mc.gotoAndStop(1); } // end if if (mc._currentframe + frame <= 1) { mc.gotoAndStop(mc._totalframes); } // end if mc._parent.b.gotoAndStop(mc._currentframe + frame); mc.gotoAndStop(mc._currentframe + frame); pre = cur; } // End of the function mm["t" + mm.OnName].WCD_Move({_alpha: 0}, {speed: 0.500000}); var w1 = this._width / 2; _parent._parent.rotate = false; intervalID = setInterval(run, 10, this); } on (release, releaseOutside){ pre = cur = false; clearInterval(intervalID); }

  • swf連続再生・2通り作ったのですが...

    すいません、以前swfの連続再生のことで質問させてもらったのですがお礼をさせてもらったあと、2通りのスクリプトで作ってみたのですが、うまくうごかないのです。 何が間違っているのか検討もつかずここに質問させてもらいます。 まずファイル構成は メインのseries.swfを埋め込んでいるhtml └flash_series(フォルダ名) ├series.swf(メインswf:読み込むswf)   ├first.swf (この順で再生↓、以下のswfの最終キーフレームにstop();を記述しています。)   ├second.swf   ├third.swf   ├fourth.swf └fifth.swf で、series.swfのステージに置いた空ムービークリップ「series_mc」にfirst.swf~fifth.swfを読み込み、swfの最終フレームにきたら次のswfを再生という感じで、以下のように組みました。 空ムービークリップ「series_mc」に記述しました。 ---------------------------------------------------------------- onClipEvent (load) { fileArr = new Array(); fileArr[0] = "flash_series/first.swf"; fileArr[1] = "flash_series/second.swf"; fileArr[2] = "flash_series/third.swf"; fileArr[3] = "flash_series/fourth.swf"; fileArr[4] = "flash_series/fifth.swf"; cnt = 0; series_mc.loadMovie(fileArr[cnt]); } onClipEvent (enterFrame) { if (series_mc._totalframes>=2 && series_mc._currentframe == series_mc._totalframes) { if (cnt<fileArr.length-1) { // cntに1を加算 cnt++; } else { cnt = 0; } series_mc.loadMovie(fileArr[cnt]); } } ---------------------------------------------------------------- です。もう一つは連番タイプで メインのseries.swfを埋め込んでいるhtml └flash_series(フォルダ名) ├series.swf(メインswf:読み込むswf)   ├no001.swf (この順で再生↓、以下のswfの最終キーフレームにstop();を記述しています。)   ├no002.swf   ├no003.swf   ├no004.swf └no005.swf で、これもseries.swfのステージに置いた空ムービークリップ「series_mc」にno001.swf~no004.swfを読み込み、swfの最終フレームにきたら次のswfを再生という感じで、以下のように組みました。 空ムービークリップ「series_mc」に記述しました。 ---------------------------------------------------------------- var num_swf = 5; //SWFファイルの個数 var load_file = new Array(); for (i = 0; i < num_swf; i++) { if (i < 10) { load_file[i] = "flash_series/no00" + i + ".swf"; } else if (i < 100) { load_file[i] = "flash_series/no0" + i + ".swf"; } } var i = 0; this.series_mc.loadMovie (load_file[i]); this.series_mc.onEnterFrame = function() { if(2 <= series_mc._totalframes && series_mc._currentframe <= series_mc._totalframes){ if(i<num_swf){ this.series_mc.loadMovie (load_file[++i]); } } } ---------------------------------------------------------------- と組んだのですが両方とも一つも読み込まれません、何が悪いんでしょうか?ご協力お願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう