• ベストアンサー

ボタンのスクリプト

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

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

  • ベストアンサー
  • 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
質問者

お礼

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