• ベストアンサー

ボタンのスクリプト

Flash8を使っています。 10個ほどのシーンを作り,スタート画面になるシーンにメニューボタンを作りました。メニューボタンはクリックするとサブメニューが出てくるように設定しています。サブメニューをクリックすると他のシーンに飛ぶようにしたいのですが,うまくいきません。サブメニューに貼り付けたスクリプトは以下の通りです。 on (release) {  gotoAndStop("シーン名", 1); } ちなみにメニューボタンはシンボルの編集画面で作成しサブメニューのボタンのスクリプトもそちらで記入しています。 よろしくお願いします。

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

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

  • ベストアンサー
  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.3

#2です。 >ムービークリップ「メニューボタン」の編集画面のタイムライン う~~ん? ムービークリップ「メニューボタン」の中にボタンシンボル「サブメニュー」がある状態なのでしょうか? それとも、ムービークリップの中にボタンシンボル「メニューボタン」とボタンシンボル「サブメニュー」がある状態でなのでしょうか? もし前者ならば、それでは作動しません。 後者でも、別にムービークリップにする必要はないのですが・・・(他の事情の為なら別ですが)手頃な作り方を紹介しますね。 **************** シーンで this.stop(); と止めて、ボタンシンボル「メニューボタン」を配置します。 次にキーフレームを作り、そこにボタンシンボル「サブメニュー」を配置します。また、そこでも this.stop(); で止めてます。 そして「メニューボタン」には on (release) {  _root.play(); } とし、「サブメニュー」にはあなたが書いているスクリプトを書いてください。 ちなみに「メニューボタン」からマウスを外せば「サブメニュー」が消てほしいのならば、どちらとも「メニューアイテムトラック」にしたり、もう少しボタンを配置する必要があります。(この方法は「メニューアイテムトラック」で検索すれば、いくつか出てきます)

calini501
質問者

お礼

私は前者なのかもしれません。 もう少し勉強してみたいと思います。 2回もご返答をいただき本当にありがとうございました。

その他の回答 (3)

  • perse
  • ベストアンサー率74% (113/152)
回答No.4

シーン移動で使う gotoAndStop は ムービークリップのメソッド MovieClip.gotoAndStop とは別物で _root(土台となる一番上のタイムライン)上でなければ動作しません。 ですので_rootに関数を作ってそれを呼べばいいと思います //_rootに記述 function GotoScene2(frame:Object) { gotoAndStop("シーン 2", frame); } //サブメニューボタンに記述 on (press) { _root.GotoScene2(1); } ちなみに パブリッシュするとシーンは繋がって一つのタイムラインになります。 つまりswfにはシーンの情報(シーン名とか)がありません。 そのためgotoAndStop()で指定するシーン名に変数は使えません。 ActionScriptを使うのであればシーンは使わずMCを使ったほうがいいですよ。

calini501
質問者

お礼

お礼が遅れてすみませんでした。ご指示通り何度かチャレンジしてみましたが,うまくいきませんでした。 私のほうで何か初歩的なミスをしているのだと思います。 ありがとうございました。

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.2

>メニューボタンはクリックするとサブメニューが出てくるように設定しています。 これはどのタイムラインに出てきているのでしょうか?

calini501
質問者

補足

ご返答ありがとうございます。 ムービークリップ「メニューボタン」の編集画面のタイムラインに設定しています。

  • kancil
  • ベストアンサー率27% (26/95)
回答No.1

ひとまず以下のように_rootもしくは_level0を つけてみてはどうですか? あとは参考書等で「階層」に関することを読んでみると なんでうまくいかなかったがわかると思いますよ。 on (release) {  _root.gotoAndStop("シーン名", 1); }

calini501
質問者

お礼

教えられたとおりやってみましたがうまくいきませんでした。根本的なところで何か間違っているのだと思います。 階層についてゆっくり勉強してみたいと思います。 ありがとうございました。

関連するQ&A

  • シーン上のボタンのscriptでエラー

    flash cs3を使ってホームページの素材を作っています。 シーン上で文字がトウィーンで動いた後、 ボタンが現れボタンをクリックするとページに飛ぶように作りたいのですが、 このボタンに on (release) { getURL("http://www.1art.jp/le.htm"); } (内のURLは例です) というscriptを入れているのですが プログラムの末尾の後に余分な文字が見つかりました。on (release) { というエラーが表示されてしまい、 普通にシーンにかけているstopも効かなくなってしまいます。 どこに問題があるのでしょうか? ちなみに文字が動くムービーも、ボタンも同一シーン上にあります。 ググりましたがスクリプト自体は間違っていないようです。 すみませんがどなたか教えてください。

  • Flashでボタンをクリックすると表示・非表示するには?

    お世話になります。 ボタン「buttonC」に以下のスクリプトを記入し、クリックするとターゲット「C」が表示されるようにしています。「C」はタイムライン1では非表示で、タイムライン2以降で表示されるようにしてあり、「buttonC」をクリックすると「C」のタイムラインが2に移動するという仕組みです。 on (release) {  with (C) {   if (_currentframe == 1) {    gotoAndStop(2);   } else {    stop();   }  } } on (release) {  buttonC._alpha = (50); } 更に「buttonC」はクリックするとアルファ=50%になるようにしています。 この状態で、もう一度クリックすると、「C」を非表示(タイムライン1に戻す)にし、「buttonC」のアルファを100%にするように設定したいのです。Flagを使ってみたのですがどうも上手くいきません。 以下は試したスクリプトです。 on (release) {  if (playmode=1) {   with (C) {    if (_currentframe == 1) {     gotoAndStop(2);    } else {     stop();    }   }  } } on (release) {  if (playmode=1) {   buttonC._alpha = (50);   playmode = 2;  } } on (release) {  if (playmode=2) {   buttonC._alpha = (100);   C.gotoAndStop(1);   _root.playmode = 0;  } } 他の方法でも構わないので、良い方法がありましたら教えてください。 よろしくお願いいたします。

  • FLASHで、メニューボタンクリック→サブメニュー開く、再びクリック→サブメニュー閉じる、と設定する方法は?

    タイトルの通りですが、 メニューボタンを・・・ クリック→サブメニュー開く 再びクリック→サブメニュー閉じる ・・・とするには、 どのようなアクションスクリプトを設定すればよいのでしょうか? あらかじめ、タイムライン上のフレームに サブメニューが開くモーションを作成し、 メニューボタンのアクションに on(release){gotoAndPlay(*);} *はサブメニューを開きはじめるフレームを指定 を設定したものの、 そこから先がわからず行き詰っています・・・ アドバイスよろしくお願いいたします<(_ _)>

  • スクリプトがわかりません。

    趣味でぼちぼちとFlashゲームを作成しています。 よく、画面上のボタンをプレス(クリックする指を押したままに)するとボタンの絵が引っ込んで、 普通のクリックをするとボタンの絵が引っ込んだり出っぱったりするのがありますよね。 あれはどうすればできるのかわかりません。 あるフレームにボタンのOFF、隣のフレームにONの画を配置して透明ボタンを配してそこになにかのスクリプトを書くのでしょうか。 クリックするたびに、ボタンのスイッチがONとOFFを繰り返すような 動きにしたいのです。 わかりにくい質問ですみませんが、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ボタンのアクションスクリプトについて

    ボタンをクリックしたら指定のURLを開かせる、というときは、ボタンのアクションスクリプトに対して、 on(press){ getURL ("01.html"); } としますよね? これを「●●」という名前のボタンは「01.html」、というように一括で変更する方法はありますか? 最初は「01.html」だったけど、その後「../01.html」になった場合、ひとつひとつ選択して変えなくてはなりません。 もし、そういう方法があったら便利だなと思ったモノで。 使用しているのはFLASH5です。

  • actionscript

    FLASHを作成してますが、actionscriptでつまずいています。 シーンが1~5まであるFLASHで、 添付の画像のようなものです。 シーン2が 左のメニュー一覧はムービークリップになっていて、 その中にボタンがある状態(入れ子?)です。 ボタンをクリックするとシーン1の先頭に飛ぶようにしたくて on (release) { this._parent._parent.gotoAndStop("シーン 1","1"); } と書きましたがうまくいきません。 詳しい方いましたら教えてください

    • ベストアンサー
    • Flash
  • ▼画像ボタンにリンクがつけられません;

    MacOSX、FlashMX2004を使用しています ネットなどでは、シンボル化したボタンを選択し、 右クリックをすればアクションというのが表示されるのでそれを クリック。とかいてあるのですが、それがでてきません・・・; アクションスクリプトに on (release) { getURL("http://flash.webkun.org/", "_blank"); これをいれればいいらしいのですが、アクションがでてこないので 挿入できません・・・どなたか助言願います

  • on( release ) がコンパイルエラーとなります

    お世話になります Adobe Flash CS3 Professional を勉強しています コンポーネントのシンボルをボタンにして、レイヤーにaction scriptを書きます on( release ) { gotoAndStop(1); } この処理でコンパイルエラーが発生します 未定義である可能性が高いメソッド on の呼び出し 未定義のプロパティ release へのアクセスです なぜでしょうか? ホームページ等を見ているのですが?です よろしくお願いいたします

    • ベストアンサー
    • Flash
  • Flash、ボタンが動かない!?

    Flashでコンテンツ制作中です。 ボタンが思うとおりに動きません。 まず、シーン1上に、レイヤー10枚400フレームほどでアニメーションを作っています。 まずは、あるボタンをクリックすると、他のフレームに移動するように作っています(移動はすべてフレームラベルをつけて移動しています)。 移動先はアニメーションなのでシンボルでアニメーションクリップ化しています。 そのアニメーションクリップはいくつかのボタンの集合体です。ボタンをクリックするとまた別のフレームに飛ばしたいのですが、うまく出来ません。 ボタン自体が動いていないわけではありませんでした。 on (release) {getURL("http://www.~~/");}にするとちゃんとページを表示します。 on (release) {gotoAndPlay("main");}とすると移動しません。 on (release) {gotoAndPlay("シーン 1", "main");} でもダメでした。 ラベルのスペル間違えではないとした場合、他に何かダメな理由が考えられることはありますか? よろしくお願いします。

  • ボタンのアクションについて

    flashの初心者です。 シーン1とシーン2を作り、シーン2の中に、文字&ボタンインスタントを一つのフレームに入れ、モーショントゥイーンをかけました。 そして、その中のボタンインスタントにアクションを入れました。 on (release) {gotoAndPlay(350);} ボタンを押し話したときに、350(シーン2)のフレームへ飛んで再生するように設定しました。 しかし、ちゃんと作動してくれません。 シーン2の205からスタートしてしまいます。 シーン1はフレーム数は145まで入ってます。 よく見ると、この145と205を足すと350になります。 つまり、シーン1からシーン2にかけて350番目と言う様になってしまいます。 だから、アクションを on (release) {gotoAndPlay(495);} にすると、きちんと動いてくれます。 シーンを分けているときは、こう言うように足さないといけないのでしょうか? シーン2の350と言うように設定はできないのでしょうか? on (release) {gotoAndPlay("シーン2"350);} では出来ませんでした。 モーショントゥイーンをかけていない、普通のボタンは、普通に設定(145を足さない)でうまく動いてくれます。 よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう