- ベストアンサー
Flashでボタンが全て押されたら次のフレームに飛びたいです。
flashで、隠れている動物を探すゲームを作っています。 動物が隠れている場所はボタンになっていて、クリックすると動物が 姿を現すようになっているのですが、 全てのボタンが押されたら次のフレームに飛んでクリア画面を出したいのです。 if(ボタンを全部押したら) { 次のフレームへ移動 } 上のようなスクリプトも書いてみましたが駄目でした。(私の書き方が間違えているだけなのかもしれませんが・・・) ボタンは全部で10個あり、それぞれbtn_1、btn_2..というような名前を付けています。 回答よろしくおねがいします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
具体的なActionScriptも書かれていませんし, ActionScript のバージョンも書かれていらっしゃいませんから, 具体的な回答は無理ですね。 フラグとなる変数を 10 個作るか フラグとなる要素 10 個入りの配列を1個作って, ボタンをクリックする前にそれらの変数または配列要素にすべて 0 を代入しておいて, ボタンをクリックするときにそのボタン対応のフラグの値を 1 にして, それと同時に if(10個のフラグの値の合計が 10 になれば) { 次のフレームへ移動 } とすれば良いのではないでしょうか? スクリプトイメージ↓ -------------------------------- フラグ0 = 0; フラグ1 = 0; フラグ2 = 0; フラグ3 = 0; フラグ4 = 0; フラグ5 = 0; フラグ6 = 0; フラグ7 = 0; フラグ8 = 0; フラグ9 = 0; ボタン0 クリック時 { フラグ0 の値を 1 にする; フラグ0~9の値を全部加算する; if(10個のフラグの値の合計が 10 になれば) { 次のフレームへ移動; } } ボタン1 クリック時 { フラグ1 の値を 1 にする; フラグ0~9の値を全部加算する; if(10個のフラグの値の合計が 10 になれば) { 次のフレームへ移動; } } …略… ボタン9 クリック時 { フラグ9 の値を 1 にする; フラグ0~9の値を全部加算する; if(10個のフラグの値の合計が 10 になれば) { 次のフレームへ移動; } } ------------------------------- もっとも, for 文でもっと短くしたり, フラグ0~9の値を全部加算する; if(10個のフラグの値の合計が 10 になれば) { 次のフレームへ移動; } 部分を別 function にまとめてしまうなどの方法を使えば, スクリプトはもっと短くできると思いますが, そういうことをしない場合のイメージです。
お礼
ご回答ありがとうございます! BlurFiltanさんに書いて頂いたスクリプトイメージをヒントに打ち込んでみたらちゃんと動作しました! 質問内容が具体的でなかったのに(申し訳ないです)、丁寧な回答頂けたことに感謝します。ありがとうございました!