• ベストアンサー

ランダム音声と正解・不正解の表示

 連続の質問になりますが、よろしくお願いします。  以下のようなことは、Javascriptでどのように表現したらよいのでしょうか。 1)sound01.mp3~sound03.mp3の中からランダムに音声を鳴らす。 2)01から03の選択肢があって、それをクリックした時、対応するナンバーの   場合、正解を示すアラートダイアログを表示させ、間違っている場合は   不正解を示すアラートダイアログを表示させる。  1)までに関しては数々の本やWebサイトを参考にすればできますが、2)に つなげることができません。おわかりの方、お教え下さい。

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

  • ベストアンサー
  • ntm98
  • ベストアンサー率26% (73/273)
回答No.1

JavaScriptは自信がないんですが、こんな感じでいかがでしょうか? 選択のインターフェイスはボタンにしましたが、勿論ラジオボタン等でも可能です。 Arrayの中身を増やせば自動的にボタンも増えます。 ただbgsoundはIE限定みたいなので、他のブラウザにも対応させるならEMBEDタグを使った方がいいでしょう。 もっともその場合も、ユーザーのブラウザにプラグインが組み込まれている必要がありますが。 ------------------------- <html> <head> <script language="javascript"> <!-- var sound = new Array("sound01.mp3","sound02.mp3","sound03.mp3"); var r = Math.floor(Math.random() * sound.length); document.write('<bgsound src="'+sound[r]+'">'); function ansCheck(n){ if(sound[r] == sound[n]){alert('正解です');} else{alert('不正解です');} } //--> </script> </head> <body> <script language="javascript"> <!-- for(i = 0; i < sound.length; i++){ document.write('<input type="button" onClick="javascript:ansCheck('+i+')" value="'+sound[i]+'"><br>'); } //--> </script> </body> </html>

babusan
質問者

お礼

 回答ありがとうございます。  試してみたところ、確かに音がランダムに出て、ボタンを選べば正解・不正解がアラートで出てきますね。  利用者が限定されているページを想定しているので、bgsound利用は特に問題ありませんが、embedの利用も検討してみます。ありがとうございました。

babusan
質問者

補足

 もう少しお教えください。  いろいろいじって自分なりに改造した結果、ページを読み込む度に音が 出る設定を、ボタンクリックによって音声を鳴らす形に変えました。  しかし、ページを読み込み直さないと乱数のrが変化せず、そのままでは 何度押しても同じ音しか出ません。音声が出るボタンを押して選択肢を選んだ 後、シャッフルし直すボタンかリンクを作りたいのですが、どう記述すれば よいでしょうか。

その他の回答 (2)

  • ntm98
  • ベストアンサー率26% (73/273)
回答No.3

リロード以外の方法もあるかもしれませんが、ちょっとすぐには思いつきませんでした。 画面全体がリセットされるのを防ぐなら、音が出るページをIFRAME内で表示すればいけるかもしれませんね。

babusan
質問者

お礼

 何度もお返事ありがとうございます。  ともかく希望の機能は使えますので、これでよしと します。お世話になりました。

  • ntm98
  • ベストアンサー率26% (73/273)
回答No.2

>シャッフルし直す これをリロードで実装して良いなら、以下のボタンを設置すればOKです。 <input type="button" value="シャッフル" onClick="location.reload()">

babusan
質問者

お礼

 よくわかりました。  リロード以外の方法はあるんでしょうか?

関連するQ&A