• ベストアンサー

Flashでボタンが全て押されたら次のフレームに飛びたいです。

flashで、隠れている動物を探すゲームを作っています。 動物が隠れている場所はボタンになっていて、クリックすると動物が 姿を現すようになっているのですが、 全てのボタンが押されたら次のフレームに飛んでクリア画面を出したいのです。 if(ボタンを全部押したら) { 次のフレームへ移動 } 上のようなスクリプトも書いてみましたが駄目でした。(私の書き方が間違えているだけなのかもしれませんが・・・) ボタンは全部で10個あり、それぞれbtn_1、btn_2..というような名前を付けています。 回答よろしくおねがいします。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.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 にまとめてしまうなどの方法を使えば, スクリプトはもっと短くできると思いますが, そういうことをしない場合のイメージです。

aoumidori
質問者

お礼

ご回答ありがとうございます! BlurFiltanさんに書いて頂いたスクリプトイメージをヒントに打ち込んでみたらちゃんと動作しました! 質問内容が具体的でなかったのに(申し訳ないです)、丁寧な回答頂けたことに感謝します。ありがとうございました!