GOTOで思ったように飛ばない

このQ&Aのポイント
  • GOTO命令でのジャンプ先が思ったようにならず困っています。
  • 変数を使ってフレーム名を代入し、それに基づいてジャンプしていますが、仕組みがうまく機能しません。
  • また、ジャンプ後のフレームでボタンの機能が失われる現象も発生しています。
回答を見る
  • ベストアンサー

GOTOで思ったように飛ばない

またもや来ました;; 今回は不思議な現象で困っています。 あちこちのフレームやシーンに飛ぶようになっているのですが 各フレームに来た時に変数「Basyo」へその時居たフレーム名を代入して内容を書き換えています。 あるタイミングになると決まったフレームに飛ぶ仕組みなのですが そのフレームに到達してある仕事を終えると 元に居たフレームへ戻るといったのが上手くいきません。 試しに、簡易プログラムを作ってみたら 思い通りに動くのですが、実際のプログラムでは 全く異なったフレームへジャンプします。 フレーム名や、変数の打ち間違いも確認したのですが 間違いを発見できません。 もしかしたら命令文に問題があるのでしょうか? ちなみに、納得できない現象が とんでもないフレームにジャンプするのは良しとして (良くないですが) そのジャンプ後のフレームで押せるはずのボタンが機能しません。 (これが恐らくなんらかの手がかりかと・・・) 命令文はこんな感じです。 フレーム1(フレーム名は「Hai」) basyo="Hai" あるきっかけで飛んだフレームでの命令 on (release) { gotoAndStop(basyo); } ちなみに、デバグ方法として一番上のレイヤーに ダイナミックテキストを配置し、basyoの中身が みえるようにしてましたら最終ジャンプする時まで basyoの中身はHaiになっているようでした。 上記、ご指導お願いします。

  • Flash
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

すみません。わっかりません。 「あるきっかけで飛んだフレームでの命令」 on (release) { _root.gotoAndStop(_root.basyo); } ↑こうしてもダメダったら (全く異なったフレームへジャンプすることはするので,たぶんダメでしょうけど),もうさっぱりわからない世界です~~~ 沈没ブクブク…。

irukacyan
質問者

お礼

早速のお返事ありがとうございます。 sassakunさんでもダメだったらきっとワタシは無茶な事しようとしているのでしょう。 他の手立てを考えてみます。 ありがとうございました

その他の回答 (1)

  • mikumari
  • ベストアンサー率0% (0/1)
回答No.2

はじめまして。 いつもここを利用させてもらってる者です。 まだ初心者なので、参考になるかまったくわかりませんがひとつ。 以前、ここで質問した時にフレームラベルを指定する時は「" "」でくくらないとダメと教わりました。 見た所、くくっていないようなので、 on (release) { gotoAndStop("basyo"); } このように指定しないといけないのでは?と感じました。 見当違いの答えかもしれませんが、参考になればと思います。

関連するQ&A

  • goto文が動かない orz

    お世話になります、Flash8超初級ユーザーです。 if~goto命令がまったく効かない、という酷い内容で書きこませて頂きました・・・; とはいえ、今まで何百フレームも使ってきた簡単な命令が、一箇所だけ完全にスルーされてしまう 状況で、原因がまったく見えず困惑しきっております。 メインムービーに、アニメーションするキャラクターのMCと、エフェクトのMC、あとボタンが 配置されているシーンです。 ボタンを押す度に変数"genki"が増えていき、100%になると大暴れ、その後3回ボタンを押すと オーバーヒートしてしまう、というショボイ内容です・・・ 下がボタンのアクションスクリプトなのですが、 1 on(press){ 2    if(_root.genki >= 99){ 3       if(_root.genki >= 100){ 4          _root.maxgenki = 100; 5          _root.maxgover++; 6          if(_root.maxgover >= 3){ 7             gotoAndStop("元気_OH"); 8          } 9          gotoAndStop("元気_MAX超え"); 10       }else{ 11          gotoAndStop("元気_MAX"); 12       } 13    }else{ 14       gotoAndStop("元気"); 15    } 16 } 17 on(release){      ・      ・      ・      ・      ・ genki = キャラクターの動作速度を決めています(今回は100%判定のときの話のみですが) maxgenki = エフェクトの大きさを決めています(〃) maxgover = genkiが100%になると増えていく、オーバーヒート判定用の変数です。 ムービー全体のごく一部分なので、数値など不明瞭な点もあるかと思いますが・・・ 説明の必要は全く無いような簡単なスクリプトですが、この6,7行目の「"maxgover"が3かそれ以上 のとき、"元気_OH"フレームに移動する」という部分が全く機能せず、3未満のときの"元気_MAX超え" フレームに飛ぶ状態のままになってしまいます。 以下、いろいろ試したのですが・・・、 ・ダイナミックテキストで表示してみると、maxgoverの数値はちゃんと増えていました。 ・どこかに"MAX超え"に強制的に飛ばすようなスクリプトでも誤記入したかとも思い、9行目を"OH"に  変えてみたところ、そこではあっさり移動できました。 ・6,7行目の命令を4,5行目、MC内や、他の場所に移動して単品で記述しても動いてくれません。 ・試しに4行目を「_root.maxgenki += 34;」として、6行目を「maxgenki >= 100」と入れ替えても飛んで  くれません。 他にも、変数名を変えてみたり悪足掻きはしてみたのですが、まったくダメでした・・・ 誤表記などのポカミスであった可能性も、これだけ書き換えて一度も動いてくれないので薄いかと・・・ ムービー全体を見なければ答えは見つからないかもしれませんが、ここに記した範囲でどこかミスは ないでしょうか? どなたかご指導ください・・・ orz

  • stopとgotoAndStopの違いについて

    stopとgotoAndStopの違いについて、今ひとつ理解出来ていません。教えて頂けませんでしょうか。 gotoAndStopは、当該のフレームにジャンプして再生を止める、stopは再生中のSWFファイルを中止する、と言う抽象的な記述をHELPで見ましたが、 ・gotoAndStopでジャンプしたフレームのフレームアクションに記述されているScriptは実行されるのですか?。 ・stopが記述されているScriptの、stop文以降のStatementは実行されるのでしょうか?。 ・再生ヘッドの関係とstopの関係、ムービーやボタン等のシンボルのアクションとの関係が整理出来ていません。 どうぞ宜しく御願い致します。

    • ベストアンサー
    • Flash
  • ムービークリップの制御

    ムービークリップの制御に関してですが・・ 組み込んだムービークリップを、メインフレームから制御したいと思っています。 任意の位置で停止させたいのですが、gotoandstopでは、そのフレームまでジャンプしてしまいます。 「任意のフレームまで再生する」、といった制御はできないでしょうか? mc内に、if文にてstopを組み込む方法では、一回目の再生で停止せず、二回目の再生で止まる・・といった現象に悩んでいる為、メインフレームから停止フレームが指定できるような制御があればいいのですが・・ お手数ですが、良い方法をご存知の方がおられましたらお願いいたします。

  • GOTO文がない言語・・・

    僕は最近プログラミングにハマっています。 僕が最初にプログラミングに触れたのは、DSi wereの「プチコン」というゲームを作れるソフトを残高が余っているのが理由で、興味半分でインストールした時でした。 それからプログラミングにどんどんのめり込んでいって、今は自分のホームページに Javascriptを埋め込んでみたり、Androidアプリの開発に挑戦したりしています。 そのプログラミングを楽しむ日々で、いつも疑問に思うことがあります。 「なぜプチコンの『Smile Basic』言語以外に、『GOTO文』と『ラベル』をつけることができる言語が少ないのか」 単純な上の文から実行していくプログラムのソースに、 @◯◯(◯は任意で設定できる)を書き込んでおいて、 あとの命令に『GOTO文』を記述して、同時にラベル名を指定することで、 指定したラベルの部分まで戻って、そのラベル以下の命令を繰り返し実行したり、 処理を飛ばしたりすることができます。 ところが、他の実際にアプリ開発などに使われている言語には、 『ラベル』も『GOTO文』もあまり見かけません。 どうして、簡易的な言語『Smile Basic』にあった『GOTO文』が、 他の言語にはあまり使われていないのでしょうか????

  • 再生しない?

    何度もスミマセン。 こちらでなんだかんだと質問して その都度、解決してもらってます。 恐ろしい容量のゲームが完成間近となってきたのですが あと一歩の所で原因不明の病に悩まされています。 各フレーム、ボタン等に様々なスプリクトを盛り込み その都度時間のかかる書き出しでプレビューし バグやエラーを発見しつつ動作確認を行っている中、 何をした記憶もないのですが _root.gotoAndPlay("ats"); の命令を聞いてくれません。 これは、atsと名前の付けたフレームにジャンプするといった 比較的簡単な動作だと思うのですが落とし穴が発見できません。 しかも、今まで問題なく動いてたのにプレビューすると ジャンプはしているようですがPlayしてくれないのです。 まるで _root.gotoAndStop("ats"); をしたのか、はたまたジャンプ先で Stop(); しているのか必死で探しましたが そういう事をした記憶もなく何故急にそうなったかが分かりません。 しかも全部のジャンプがそうなったのではなく 部分的な現象なので手に負えません。 そろそろ完成に近づいているのでとても 諦めるにはつらいものがありましたので 懲りずに質問とさせていただきました。

    • ベストアンサー
    • Flash
  • プログラムカウンタの動き方

    プログラムカウンタは命令を実行するたびにカウンタに1を足して順次進行をしていくことはわかります。 ですがif文やwhile文はよく「もし大きければ004番地にジャンプする」などとたとえられています。 自分は順次進行しながら004番地まで命令を無視しているのか それとも本当に002、003のところを飛ばしているのかを考えています。 while文も同じく、001から009まで実行して、もし条件を満たしていなければ001に戻るというとき、プログラムカウンタは逆走して即座に001に戻るのでしょうか? それとも順次進行をしながら、001に戻るまで命令を無視しているのでしょうか? 自分が聞きたいのは、順次進行を守って命令を無視しているのか? それとも、逆走したり、ジャンプしたりしているのか? それとも、もっと別の手段があるのかということです。 よろしくお願いします。

  • チェックボックスの制御(onClipEvent)

    ムービークリップにボタンを二つ組み合わせて作ったチェックボックスをクリックした時に変数clickedの数を0または1に変更するようアクションスクリプトを入力しましたが作動しません。 ムービークリップは、 フレーム1に空ボックス→チェックと変化するボタン、フレーム2にチェック→空ボックスと変化するボタンを配置し、 on(press){ gotoAndStop(2); //フレーム2にはgotoAndStop(1) } とアクションスクリプトを入れています。 これでボタン自体は正常に動くのですが、ボタンがクリックされた状態かどうかを確認する為の変数clickedにクリックした際数字が足されません。 onClipEvent(mouseDown){ clicked++; } 確認のために上記のアクションスクリプトにgotoAndStop(10);のようにフレーム番号を入れ、クリックした際に移動するかも試してみましたが移動しません。こういう場合にonClipEventを使うのが間違っているということでしょうか。 ムービークリップの方に on(press){ gotoAndStop(2); clicked++; } として試してみましたがこちらも上手く行きませんでした。 何か解決法などありましたらアドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASHで文字入力て判定させる

    こんにちは、現在FLASHの勉強しております。 以下のような簡単なクイズゲームを作ってみようと思いましたが分からない事があるので質問させていただきますね。 問題はMySQLから読み出す ユーザに答えをFLASHの画面上から入力させる そして答え合わせのボタンを押したとき入力された 文字列がMySQLに保存されている答えの文字列と一致した時、正解のフレームへ飛ばしてやり間違っていたなら不正解のフレームに飛ばしてやりたいと考えております 現在MySQLから問題文や答えの値を読み出す事には成功しております FLASHでの文字入力も以下のソースで出来ているはず・・ onClipEvent (load) { output = ""; } onClipEvent (keyDown) { output =output+String.fromCharCode(Key.getAscii()).toUpperCase();} 上記の文でoutputという変数に入力された文字を入れて いるはずです。 そして解答ボタンのソースは以下の通りです on (release) { if(kotae==output){ this.gotoAndStop("sei");} else{this.gotoAndStop("huse");} } kotaeという変数に正解の答えが入っています さきほどのユーザが入力した変数outputと比べて 同じならseiという正解のページへ 間違いならhuseというページへ行ってくれると思っていたのですが どうもうまくいきません、どう入力しても不正解のページしかいきませんでした。 どなたか分かる方おられましたら宜しくお願い致します

    • ベストアンサー
    • Flash
  • 多重処理下のメモリ

    一つのメモリ(0番地からMAX番地まで)に複数のプログラムを 置くと、番地はどうなるんですか? 特に、変数の番地やジャンプの命令の飛び先番地が、2つ目以降 のプログラムの場合どうなるんですか? 問題が起きた場合どういった解決方法があるのですか?

  • phpの変数をmysqlへの命令文に含みたい

    mysqlへの接続等は完璧で問題なのは、phpの変数を含んだmysqlへの命令文です。 これは試行錯誤した上で間違いないと思いました。 具体的には $link = "接続の情報"  $table = "具体的なテーブル名" $result = mysql_query("select * from $table",$link) $row = mysql_fetch_array($result, mysql_assoc) としたときに print_r($row); が無反応です。 元のソースが今、手元にないので細かいところを間違えているかもしれませんが、select文で$tableを書く代わりに直接「具体的なテーブル名」と書いたらうまくいったので、phpの変数をphpからmysqlへの命令文に含む方法に問題があったと思った次第で、この方法を教えていただきたいです。 $linkまで含めて命令できるなら、その方法も教えていただきたいです。 よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう