本日  昨日
 
03/16(Sun) 02:54

o ランダムに変わるBGM or 音声のご挨拶の作り方
■(99/12/05):1番最後の曲が演奏されないバグ修正。

ランダムに変わるBGMの作り方をJavaScriptで行う方法を2つ紹介します。「midiデータ」を「auデータ」に変更すればランダムに変わる音声でのご挨拶になります。

JavaScriptのメリットは、ブラウザの種類、バージョンに極め細かく対応できる点です。Netscapeでは「EMBED」、IE3.02以下では「BGSOUND」を使う必要がありますので、setBGM()でブラウザの種類、バージョンを判定して設定してしまいます。

  1. 下の2つのBGM用関数setBGM()のうち使いたい方をヘッダー部に定義します。
  2. MIDIコンソールを表示したい任意の場所に、関数setBGM()を実行するコマンドをJavaScriptで本文に記述します。
(注) EMBEDEDのパラメータの説明はソフト工作室No.17(BGM)No.16(音声)にあります。


下の2つのBGM用関数setBGM()のうち使いたい方をヘッダー部に定義します。

ランダムに演奏させる場合
曲数を増やす時は、BGM[3]="midi/bgm3.mid";と追加します。減らす場合はBGM[2]="midi/bgm2.mid";を削除します。
<SCRIPT language="JavaScript"> <!-- // ランダムに変わるBGM BGM = new Array(); BGM[0]="midi/bgm0.mid"; BGM[1]="midi/bgm1.mid"; BGM[2]="midi/bgm2.mid"; function setBGM() { rand = Math.floor(Math.random()*BGM.length); if (navigator.appName.substring(0,3)=="Mic" && navigator.appVersion.substring(0,1)<=3) document.write("<BGSOUND SRC='" + BGM[rand] + "' loop='1'>"); else { document.write("<EMBED SRC='" + BGM[rand] + "' autostart='true' volume='40'"); document.write(" width='144' height='30' loop='true' controls='console'><br>"); } } // --> </SCRIPT>

ページにアクセスした時の「秒」数によって演奏させる場合(20秒ごとに変わります)
曲数を増やす時は、BGM[3]="midi/bgm3.mid";と追加します。減らす場合はBGM[2]="midi/bgm2.mid";を削除します。
同時に、演奏する曲数に合わせてrand=3以降の対応するif文の追加・削除をします。
<SCRIPT language="JavaScript"> <!-- // ランダムに変わるBGM BGM = new Array(); BGM[0]="midi/bgm1.mid"; BGM[1]="midi/bgm2.mid"; BGM[2]="midi/bgm3.mid"; function setBGM() { dt = new Date(); s=dt.getSeconds(); if (s <= 20) rand=0; else if (s <= 40) rand=1; else rand = 2; if (navigator.appName.substring(0,3)=="Mic" && navigator.appVersion.substring(0,1)<=3) document.write("<BGSOUND SRC='" + BGM[rand] + "' loop='1'>"); else { document.write("<EMBED SRC='" + BGM[rand] + "' autostart='true' volume='40'"); document.write(" width='144' height='30' loop='true' controls='console'><br>"); } } // --> </SCRIPT>


MIDIコンソールを表示したい任意の場所に、関数setBGM()を実行するコマンドをJavaScriptで<BODY>〜</BODY>内に記述します。

<script language="JavaScript">
<!--
setBGM();
// -->
</script>

(注)音声の場合は、繰り返しを1回に指定しコンソールは表示しない方法をお勧めします。

document.write("<BGSOUND SRC='",BGM[rand],"' loop='1'>"); document.write("<EMBED SRC='",BGM[rand],"' autostart='true' hidden='true'>");
 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ