• ベストアンサー

FLASHのボタンの動作(他のボタンにロールオーバーしたら…)

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

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

  • ベストアンサー
noname#5549
noname#5549
回答No.2

こんばんは。 もちろん可能です。 「入れ子」という概念はご存じですか? Flashだけの概念ではないですが、動作の殆どはこの発想で解決します。 例えば、ボタンだからってボタンシンボルを素直に置くのではなく、 MCの中にボタンシンボルを配置すると、話は随分違ってきます。 そのMCの1フレにボタンシンボルAを入れstop()をかける、ロールオーバーで2フレに移動、 メニューを表示(もちろん各メニューにはボタンシンボルを付ける)、 ここで最初のボタンAは消え、ボタンB(ヒットのみ)を表示、ボタンBのヒットは「メニューの外部一定範囲」にする。 ボタンBロールオーバーで1フレに戻す。 これが基本。 あとは同じようなMCを複製し、 それぞれカスタマイズ、さらにボタンAロールオーバーの命令に、 各MCを1フレにするスクリプトを付け加える。↓ <サンプル> on (rollover) { this.gotoAndPlay(2); _root.MC2.gotoAndPlay(1); _root.MC2.gotoAndPlay(1); _root.MC2.gotoAndPlay(1); } てな感じです。 あとは創意工夫でもっと使いやすくしてください。

KODAMAR
質問者

お礼

無事できました。 ありがとうございました。

その他の回答 (1)

noname#5549
noname#5549
回答No.1

こんばんは。 では、単純にBのボタンにスクリプトを 書けばいい気がしますが、何か意味が違うんでしょうか? 類似してますが、ボタンのオブジェクトと、 動作させたいオブジェクトが異なる場合、 (もちろん、それも含めてボタン化しても良いのですが) 現状で「this」となっている部分を、 _root.MC名.gotoAndPlay(2); などとすることで実現できます。

KODAMAR
質問者

お礼

回答ありがとうございます。 Bのボタンにもスクリプトをかいているのですが、 ちょっと意図した動きではないので…。 AとBはサイトのメニューを表示するためのボタンです。 例えばAにロールオーバーすると、「トップ」「1番目」というメニューが、 Bにロールオーバーすると「2番目」「ラスト」というメニューが出てくるとします。 Aにロールオーバーして、その中からメニューを選ぶために「rollout」は使えません。 そしてBにロールオーバーしたらAに出ていたメニューを消す、というようにしたいのです。 これらの動作はボタンのActionScriptで制御できるでしょうか?

関連するQ&A

  • Flash CS4でリンクボタンを作成中です。

    Flash CS4でリンクボタンを作成中です。 初心者で、スクリプトの意味がまだ良く分かっておらず、参考書記載の通りにアクションを書いたのですが、「コンパイルエラー」が表示され、指定したページへリンクされません。 アクションスプリクト及びコンパイルエラーは以下の通りです。 どこが悪いのか全然分かりません。どなたか至急ご教授宜しくお願いします。 ★アクションスクリプト 1  on (rollOver) { 2  this.gotoAndPlay("ON"); 3  } 4 5  on (rollOut) { 6  this.gotoAndPlay("OFF"); 7  } 8 9  on (release) { 10 getURL("http://www.~/"); 11 } ★コンパイルエラー 1087 シンタックスエラー(プログラムの末尾の後に余分な文字が見つかりました。) on (rollOver) { 以上、宜しくお願いします。

    • ベストアンサー
    • Flash
  • ボタンの中にボタンを作るには?

    ボタンの中にボタンを入れたいのですが、中にボタンを入れると一番外のボタンに命令していたスクリプトがいうことを聞かなくなってしまいます。ちなみに外のボタンには on(rollOver){ gotoAndPlay(フレーム); } on(rollOut){ gotoAndPlay(1); そして10フレームほどトゥイーンがあり、10フレーム後のボタンには } on(rollOver){ gotoAndStop(10フレーム後); } on(rollOut){ gotoAndPlay(1); } と書いています。このボタンは、あるボタンを押すと出てくるようになっています。このボタンの中に文字でボタンを入れたく、また、見え方も外のフレームと一緒にしたいです。 わかりづらい説明で申し訳ないのですが、よろしくお願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • フラッシュでボタンにマウスポイントを当てた時に点滅する方法

    フラッシュを勉強している者です。 ボタンを作成してその上にマウスポイントを置いた時にそのボタンが暗くなったり、明るくなったりという要領で光りを放ち、マウスポイントを放すと元の状態に戻す。という物を作りたいと思いました。 下記の通りソースを書いた所、パブリッシュ時にエラーが表示されてそのままフラッシュ自体が強制終了してしまいます。 on(rollOver){ this.gotoAndPlay(2) } on(rollOut){ this.gotoAndPlay(1) } おそらく考えられる事としてボタン自体をムービー的なタイムランで動かそうとしているからではと思っています。 どうか実現するためのソース例を教えて頂けないでしょうか?お願いします。

  • FLASH5で以下のようなことをする場合に。

    [1]~[17][18][19][20][21][22][23][24][25][26][27][28][29][30] B     ●a A   ● 上記のようなflaファイルがあります。 AはボタンでBはムービーです。 Aのボタンには以下のようなアクションスクリプトが設定されています。 -------------------- on(rollOut){ this.gotoAndPlay(18); } -------------------- Bの18フレームには以下のようなアクションスクリプトが設定されています。 -------------------- this.stop(); -------------------- Aのボタンの1度目のロールオーバーはきちんと意図した通りに動くのですが、 連続で2回やった時に意図した動きになりません。 時間を置いて再びやったり、違うボタンを触ってからやればきちんと動きます。 連続で2回やってもきちんと意図した通りの動きをさせるためにはどのようにすればいいのでしょうか?

  • ボタン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
  • FLASH5で、ボタンにロールアウト時にもアニメーションさせたい

    FLASH5を使用しているのですが、ボタンにマウスのロールオーバーで アニメーションを設定することはできますが、ロールアウトしたときにも アニメーションを設定したい場合、どのような方法があるか教えていただきたいです。 今私が作りたいのは「何もないところにロールオーバーするとボタンがゆっくり表示され、 ロールアウトするとゆっくり消える」というものです。 現時点では、私はムービークリップの中にボタンを入れ、最初のフレームで フレームアクションに stop (); を設定し、そこに配置してあるボタン(ここでは、透明なボタン)に on (rollOver) { play (); } で次のフレームに行くようにし、そこでロールオーバー時のアニメーション(ゆっくりボタンが現れる) を作成して、止めたいところでフレームアクションに stop (); を設定し、その停止時に配置してあるボタン(表示されている可視状態)に on (rollOut) { play (); } を設定し、その次のフレームからはロールアウト時のアニメーション(ゆっくりボタンが消える) を作成しています。 これだと、動作はするのですが メニュー等のようにボタン(この場合はボタンを含んだ ムービーですね)を隣接させて複数置いた場合などに on (rollOut) { play (); } のスクリプトがうまく効かず、他のボタンにロールオーバーしているにも関わらず前にロールオーバーした ボタンがそのままの状態(ボタンが消えず表示されたままの状態)で残ってしまいます。 tellTargetとifを使用するのかな?とも考えたのですがよくわからず困っています、、、、 長文で申し訳ないのですが、よろしくお願いします。

  • FLASH MXでムービークリップをボタンではなくムービークリップ自体で操作できますか?

    いまだにFLASH MXを使っています。 やりたいことはムービークリップを作成し、マウスがそれに触ると停止し、離れると動く、といった感じにしたいのですが、どうにも上手くいきません。 他にボタンを作成しそこにアクションを設定すれば上手く動くのですが ボタンではなく自分自身で操作できないかと思っています。 ボタンのシンボルをムービークリップ(movie)化 それをステージに配置しアクションを設定 アクションイメージ on (rollOver) { movie.stop(); } on (rollOut) { movie.start(); }

  • マウスポインタを変化させない方法

    50も半ば過ぎの初心者です。 Flash8で、jpg画像の上にムービークリップ及びボタンを配置、   on (rollOver) { gotoAndPlay("s1"); } on (releaseOutside, rollOut) { gotoAndPlay("s2"); } で、画像へのマウスポインタの乗り降りでムービークリップの制御をしました。 このとき、画像にマウスポインタが乗ると形状がデフォルトの"矢印"から"手"に変りますが、これをデフォルトのまま変化させない方法を教えてください。 on (rollOver) { Mouse.hide(); gotoAndPlay("s1"); } on (releaseOutside, rollOut) { Mouse.show(); gotoAndPlay("s2"); } で、画像にマウスポインタが乗ると消えるようにはできたのですが、クリックしても何も起こらない"ボタン"なので、"矢印"のままにしておきたいのです。 よろしくご指導ください。

    • ベストアンサー
    • Flash
  • ロールオーバーするとラベルにジャンプし、ロールアウトするまでストップ

    ボタンAとボタンBの2つがありまして、 ボタンAにロールオーバーすると、指定したラベルにジャンプし、ボタンAの位置にボタンBがきます。 オーバー後少し進み、ロールアウトするまでストップしたいのですが、どうすれば良いのでしょうか? ボタンAには ──────────────────── on (rollOver) { gotoAndPlay("ボタンBの所のラベル"); } ──────────────────── と書いてあり、ロールオーバー時にきちんとラベルにジャンプしてくれます。 ボタンBには、 『 buttonB 』と名前を付け ──────────────────── on (release) { getURL("http://www.URL"); } ──────────────────── と記載してあり、別ページに飛ばしております。 該当のラベルまでジャンプした後、10フレームくらい進んだフレームにActionScriptをかけておりまして、 ──────────────────── stop(); clearInterval(stopID); var mov_stop = 4000; stopID = setInterval(function () { play(); clearInterval(stopID); }, mov_stop); } ──────────────────── となっており、ここのフレームでロールアウトするまでストップさせたいのですが、どうすればいいのか分からず困っております。 分かり難い文章で申し訳ないのですが、どなたか詳しい方ご掲示お願い致します。

    • ベストアンサー
    • Flash
  • ラジオボックスを使ったFLASH 変数の受け渡しについて

    FLASH5で、スマートクリップのラジオボタンを使いまして選択型の変数の値をCGIにうけわたしたいのですが、うまくゆかず、悩んでおります。 ・ラジオボタンと、送信ボタンを準備しました。 ・ラジオボタンの_name を それぞれr_01、r_02、r_03とし、チェックが入ったときに、変数icon="a" "b" "c"が入るようにしたい 送信ボタンに on (release) {      if(r_01 == true) { icon = "a";}      if(r_02 == true) { icon = "b";}      if(r_03 == true) { icon = "c";} } on (release) { mode = "write"; resid = resid; getURL (script, "_self", "POST"); } on (rollOver) { tellTarget ("write") { gotoAndPlay ("over"); } } on (rollOut) { tellTarget ("write") { gotoAndPlay ("out"); } } on (press) { tellTarget ("write") { gotoAndPlay ("press"); } } アクションスクリプトはかじりたてで、初歩的なミスがあるかと思います。どなたか教えていただければ幸いです。