• ベストアンサー

動くボタンでリンク

FLASH MXです。 マウスポインタがオーバーすると色が変わるボタンをつくりました。 そのボタンをムービークリップとして、動きをつけました。 それをスクリーン上に配置して、リンクをはったのですが、 するとマウスポインタを置いても色がかわらなくなってしまいました。 どうしてなんでしょうか。おしえてください。 前の質問にあった、リンクで、透明ボタンの方法を試しましたが、うまくいきませんでした。

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

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

色の変わるボタンをボタンシンボルで作り、このボタンをムービークリップに変換、つまり、ムービークリップの中にボタンインスタンスが含まれている状態、ということでしょうか? ステージにムービークリップのインスタンスを置き、このインスタンスに on アクションを設定すると、ムービークリップ全体がヒット領域(マウスが反応する部分)になります。 ユーザーにはボタンにカーソルを合わせているように見えても、Flash の内部では、これはボタンではなくムービークリップで発生したマウスイベントと見なされます。ムービークリップ内のボタンではマウスイベントが起きていないことになりますから、「オーバー」のフレームに切り替わらず、色は変化しなくなります。 ムービークリップに透明なボタンを重ね、そのボタンに on アクションを設定した場合も、同様の理由でボタンの色は変わらなくなります。 透明なボタンに on アクションを設定した場合は、透明なボタン全体がヒット領域になります。クリックすると透明なボタンのイベントとして press (または release )イベントが発生し、リンク先は表示できます。しかし、その下の本来のボタンではマウスイベントが発生せず、「オーバー」のフレームに切り替わらないので、色は変化しません。 解決策ですが。 要するに、ムービークリップではなくその中のボタンがヒット領域になればいいわけです。 ムービークリップに配置したボタンに直接 on アクションを設定して、getURL を入れてみてください。ボタンがヒット領域になり、色も変わるようになると思います。 ボタン以外の場所(透明なボタンまたはムービークリップ)に on アクションを設定している場合は、スクリプトを削除してください。 Flash でバナーを作る時は、ムービーのどの場所がクリックされてもリンク先を表示できるように、透明なボタンを重ねる手法がよく使われます。 バナーは、基本的にはリンク先を表示できればいいだけです。ボタンの下のムービークリップなどでマウスイベントを利用する必要はありませんから、透明なボタンを重ね、そこがヒット領域になって他のムービークリップのマウスイベントが検出できなくなっても、特に問題はありません。 また、Flash 5 では、ムービークリップでは press や rollOver / Out イベントが検出できませんでした。ボタンシンボルではできない複雑なボタンは、ムービークリップで作らざるをえませんが、そのムービークリップでは press などのイベントが検出できません。その解決策の1つとして、透明なボタンを重ねるという方法がありました。 Flash MX からは、ムービークリップに on アクションを設定して、ボタン特有のイベントだった press イベント等も検出できるようになりました。透明なボタンを重ねなくても、ムービークリップが持っている機能だけで充分対応できます。

orga999
質問者

お礼

この方法でできました。ありがとうございます。

orga999
質問者

補足

解決策のようにムービークリップを開いて、そのボタンに on(release){ getURL("http://・・・"); } と書けばいいのですよね? やったんですが、ボタンの色は変わるけれど、 リンクに飛ばないんですよ。。 なにか足りないのですか??

その他の回答 (2)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.3

#2です。 ムービークリップの中のボタンに on を設定し、getURL で、間違いはないと思いますが・・・ ムービーの編集画面でも、メニューの「制御」→「シンプルボタン」にチェックを入れると、カーソルを合わせた時や押した時のボタンの外観は確認できますが、ボタンに設定されたアクションの動作は確認できません。「制御」→「ムービープレビュー」で確認してみてください。 ネットにつながっていない・URLが間違っているなどの理由でページが表示されなくても、ボタンを押した時にブラウザが立ち上がれば、スクリプト自体には間違いはないと言えます。 Windows をお使いで、ブラウザで既に表示している Web ページなどがある場合は、getURL で開いたウィンドウがタスクバーの中に入ってしまって、ブラウザが立ち上がっていないように見えることもあります。 なお、ムービークリップ内のボタンに on で直接設定する方法のほかに、 on*** というイベントハンドラを使って設定する方法もあります。 この場合は、ムービークリップに配置したボタンとステージに配置したムービークリップに、それぞれインスタンス名が必要です。 仮に、ボタンを btn 、ムービークリップのインスタンス名を clip とします。 メインのタイムラインに、次のようなアクションを設定します。 (↓このスクリプトをコピーして利用する場合は、各行頭の全角のスペースを、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)  clip.btn.onRelease = function()  {   getURL("http://***");  }; この方法ですと、1つのシンボルから複数のインスタンスを作る場合、それぞれリンク先を変えられるという利点もあります。 こちらを利用する場合は、ボタンに設定した on アクションを削除してください。 編集画面で「シンプルボタン」にチェックを入れてもボタンの色が変わらなくなりますが、これは正常です。「ムービープレビュー」で確認してみてください。

orga999
質問者

お礼

下記の方法でうまくいきました。ありがとうござます。 ムービークリップを作り直したら、うまくいきました。(なぜかわかりませんが) 詳しい説明でした。なぜ、ボタンとして反応しないかまでよくわかりました。

  • antai
  • ベストアンサー率38% (88/227)
回答No.1

>そのボタンをムービークリップとして とありますので、その時点でボタンじゃなくなってしまったので、ポインタがその上に来ても反応しなくなってしまったんでしょう。 >前の質問にあった... その質問がどれかはわかりませんが、その質問の質問者の方が解決されているのなら、どこか間違っているということになると思います。 少なくても、うまくできる方法が回答として掲載されていると思いますので、どこがわからなかったとか、こんな風になっちゃってうまく動かないみたいなことは書いたほうがいいと思いますよ。

orga999
質問者

お礼

ボタンとして反応しないということにはじめてきづきました。ありがとうございます。

orga999
質問者

補足

その動くボタンをステージに配置しただけだと、 ちゃんとポインタに反応するのです。 getURL()でリンクを張ったとたん反応がなくなるのです。 どうしてなんでしょう。。。(><。

関連するQ&A

  • ムービークリップの下のボタンリンクが反映され困っています

    初めてムービークリップを使ったFLASHを作っています。 地図を作っていて、ポイント密集部をムービークリップで拡大し、拡大された地図のポイントをボタンでリンクしています。 また密集地以外のポイントはボタンのみのリンクをしています。 その時に、最上段のムービークリップに隠れて見えない他のムービークリップやボタンのリンクが出来てしまいます(指ポインタが出る) これが表れないようにしたいのですがどのようにすれば良いのでしょうか? 分かりやすく教えて頂けたら幸いです。 よろしくお願いします。 Mac MX2008pro

  • FLASHでのボタン制御

    FLASHでボタンを作成しました。そのボタンには「オーバー」の部分のみムービークリップが配置されています。そのボタンをクリックした後、マウスのボタンを離すとすぐに「オーバー」のムービーが再生されてしまうのですが、クリック後マウスのボタンをはなし、マウスカーソルがボタンの上にある状態でも「オーバー」のムービーにならないようにするにはどうしたらよいのでしょうか? 具体的には・・・ 1.ボタンをクリックした後「ダウン」のままの状態にする。とか・・・ 2.「ダウン」にもムービークリップを配置し、クリックした後はそのムービーが再生されて完結する。 というようなボタンに変えたいのです。 わかりづらい文章で恐縮ですがよろしくお願い致します。

  • ボタンにムービー

    Flash初心者です。 MXをMacOS X 10.39環境で使用しています。 ムービークリップを作り、ボタンのアップ、オーバー、ダウンにそれぞれ別のムービークリップを配置し、ムービープレビューで確認したのですが、動きません。 何が問題なのか検討がつかない状態です。 チェックすべき場所や解決方法などご存じありましたらアドバイスをいただきたく思います。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • ボタンのリンク先が毎回定まりません^^;

    ボタンを使ってフレームラベルにリンクを作成しているのですが、どのボタンも押すとリンク先が一つづつ隣のラベルにズレてきてしまいます。こんな感じスクリプト書いてみたんですが…。 menu1_btn.onRelease = function() { gotoAndStop(label_top); }; ボタンとスクリプトを配置しているのはAムービークリップ内で、リンク先のフレームラベルはメインのライムラインになります。 使っているソフトはFlash MX 2004 Plofessonalです。 基本的なことで申し訳ないのですが、どなたか原因と対処方法を教えてください。

  • FLASHで、ボタンの押しっぱなしについて

    ステージ上に配置したボタンを押すことでムービークリップを動かすことはできるのですが、ボタンを押しっぱなしにしてる間ムービークリップが移動しつづけるようにするにはどうしたら良いのでしょうか? whileなどを使って色々試してみましたがどうもうまく行きませんでした。 ご存知の方がいましたらゼヒ教えてください。 環境はwin版FLASH MXです。

  • 1ページに2つFlashボタンを置くと・・・

    現在1ページに2つの全く別のFlashボタンを作成しています。 しかし、それがどうもおかしくてそのボタンにマウスのポインタがヒットすると指マークが点滅したり指のマークに変わらなかったりするんですが、どうしてでしょうか? そのFlashで作成したボタンとは、二つともムービークリップで作成し、常にアニメが動いています。 ムービークリップで作成している為、ボタンに変更した方法は一番上のレイヤーに透明なボタン領域を作ってその透明ボタン領域にリンク名を貼っています。

    • ベストアンサー
    • Flash
  • ボタンシェイプにリンクを張ると…

    はじめまして、FLASH初心者です。 ボタンシェイプを作り、「アップ」を3枚の写真が切り替わるムービーにし、 「オーバー」で静止テキストにリンクを張ったメニューを表示させようとしたのですが、 リンク付テキストにマウスを移動するとアップの時のムービーが出てきてしまって困ってます。 ActionScriptで解決できるのかどうかわからず、まだ不慣れなのでご教授願いたいと思います。

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

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

  • ボタン作成について

    フジファブリックのホームページ http://www.fujifabric.com/ にあるギターのボタンフラッシュの動きを作りたいのですが、 なかなかうまくいきません。 ロールオーバーしたらギターの位置が左に動くムービークリップが再生され、 ロールアウトしたらギターが元の位置に戻るムービークリップが再生される。 という感じでやっているのですが、 ロールオーバーしただけで二つのムービークリップが再生されたり ストップを指示するとロールアウトしてもムービーが再生されなかったりで うまくいきません。 どなたか作り方のアドバイスを頂ければと思います。 よろしくお願いします。

  • マウスを乗せるとランダムに画像が舞い上がる

    ある画像(たとえば★とします)にマウスを乗せると しゃぼんだまを飛ばしたようにランダムにある画像(★)から舞い上がると言うような物を作りたいと思っています。 マウスをはずすと舞い上がるものも消える(止まる)ようにしたいです。 ボタンのオーバーフレームにムービーを作ってみたのですが、動きがぎこちなく納得がいきません。 アクションスクリプトを使うとできるのかなと思いましたがボタンアクションかムービークリップアクションにすればよいのか分かりません。 このときにできればマウスポインターが指の形に変化しないようにしたいとも思っています。 よろしくお願いします。

専門家に質問してみよう