• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1回目と2回目以降では違う動きをもったボタンを作りたい!)

1回目と2回目のマウスオーバー時のボタン動作の違いについて

このQ&Aのポイント
  • 1回目と2回目のマウスオーバー時に異なる動きをもったボタンを作りたいと考えています。現在のスクリプトでは毎回同じフレームに遷移してしまうため、2回目以降に異なるフレームに遷移する方法を知りたいです。
  • 具体的には、1回目のマウスオーバー時には「aaa」フレームに遷移し、アニメーションを再生させたいです。2回目以降のマウスオーバー時には「bbb」フレームに遷移し、静止画を表示させるだけにしたいです。
  • 現在のスクリプトはマウスオーバー時に常に「aaa」フレームに遷移するため、2回目以降に異なるフレームに遷移させる方法を知りたいです。ご教示いただければ幸いです。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1 です。 > 「B」としては1回目のマウスオーバーなのに > 2回目以降と判断するようです。 > 「C」に試しても同じく2回目以降と認識しました。 それは, 1. ボタンがボタンシンボルのインスタンスであって, 2. それらのボタンが _root なら _root という同じ階層にあって, 3. 同じ 変数 を参照するから です。 1~3 のうちどれかの条件を壊せば良いのですから, 変数名を変えるのが一番順当で簡単な方法です。 ちなみに flag(意味:旗) は,私が勝手に決めた変数名で, それ自体(単語の意味自体)はスクリプト的には何の意味も持ちませんから何でもかまいません。 「Hanako」 とか 「Tarou」 でも良いのです。 ボタン「A」 でしたら, on (rollOver) { // もし変数 flagA の値が undefined(未定義) であれば if (flagA == undefined) { // "aaa" に進む gotoAndPlay("aaa"); // そして 変数 flagA の 値を true にする flag = true; } else { // それ以外は "bbb" に進む gotoAndPlay("bbb"); } } ボタン「B」 でしたら, on (rollOver) { // もし変数 flagB の値が undefined(未定義) であれば if (flagB == undefined) {   … 以下略 … ボタン「C」 でしたら, on (rollOver) { // もし変数 flagC の値が undefined(未定義) であれば if (flagC == undefined) {   … 以下略 … と書くような感じにすればできると思います。

funkytomat
質問者

お礼

できました!!! こんなに早くお返事いただけて解決するとは思わなかったので、とてもとても感激していますっ!!! 本当にありがとうございました。

その他の回答 (1)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ボタン単独で片付ける場合は, on (rollOver) の方を次のようにすればできると思います。 on (rollOver) { // もし変数 flag の値が undefined(未定義) であれば if (flag == undefined) { // "aaa" に進む gotoAndPlay("aaa"); // そして 変数 flag の 値を true にする flag = true; } else { // それ以外は "bbb" に進む gotoAndPlay("bbb"); } }

funkytomat
質問者

補足

BlurFiltanさま ご回答いただいてありがとうございました。早速試してみましたら、うまく行きました!! ・・・が、実は・・・ステージ上に同じようなボタンが3つあるのです。それぞれが別のフレームに進んでいます。 3つのボタンを「A」「B」「C」としますね。 教えていただいたスクリプトを「A」「B」「C」それぞれに、それぞれのとび先(別々)を入力して制作しましたら、最初「A」にマウスオーバーをしたら1回目と認識しました。次に別のボタン「B」にマウスを置くと、「B」としては1回目のマウスオーバーなのに2回目以降と判断するようです。「C」に試しても同じく2回目以降と認識しました。 希望としては「A」「B」「C」それぞれに1回目と2回目以降を設定したいのです。 何か方法がありますでしょうか? アクションスクリプト初心者で、大変お手数をおかけして申し訳ありません。 教えてくださいませ。 どうぞよろしくお願いいたします。

関連するQ&A

専門家に質問してみよう