何歳が一番楽しかった?

 連続の質問になりますが、よろしくお願いします。

 以下のようなことは、Javascriptでどのように表現したらよいのでしょうか。

1)sound01.mp3~sound03.mp3の中からランダムに音声を鳴らす。
2)01から03の選択肢があって、それをクリックした時、対応するナンバーの
  場合、正解を示すアラートダイアログを表示させ、間違っている場合は
  不正解を示すアラートダイアログを表示させる。

 1)までに関しては数々の本やWebサイトを参考にすればできますが、2)に
つなげることができません。おわかりの方、お教え下さい。

A 回答 (3件)

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>

この回答への補足

 もう少しお教えください。

 いろいろいじって自分なりに改造した結果、ページを読み込む度に音が
出る設定を、ボタンクリックによって音声を鳴らす形に変えました。

 しかし、ページを読み込み直さないと乱数のrが変化せず、そのままでは
何度押しても同じ音しか出ません。音声が出るボタンを押して選択肢を選んだ
後、シャッフルし直すボタンかリンクを作りたいのですが、どう記述すれば
よいでしょうか。

補足日時:2005/04/13 11:16
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。

 試してみたところ、確かに音がランダムに出て、ボタンを選べば正解・不正解がアラートで出てきますね。

 利用者が限定されているページを想定しているので、bgsound利用は特に問題ありませんが、embedの利用も検討してみます。ありがとうございました。

お礼日時:2005/04/13 03:30

リロード以外の方法もあるかもしれませんが、ちょっとすぐには思いつきませんでした。


画面全体がリセットされるのを防ぐなら、音が出るページをIFRAME内で表示すればいけるかもしれませんね。
    • good
    • 0
この回答へのお礼

 何度もお返事ありがとうございます。

 ともかく希望の機能は使えますので、これでよしと
します。お世話になりました。

お礼日時:2005/04/16 07:38

>シャッフルし直す



これをリロードで実装して良いなら、以下のボタンを設置すればOKです。

<input type="button" value="シャッフル" onClick="location.reload()">
    • good
    • 0
この回答へのお礼

 よくわかりました。

 リロード以外の方法はあるんでしょうか?

お礼日時:2005/04/13 21:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報