CGI-BBS > JAVA/JavaScript > JavaScript > フレームを使用したサイトでページごとにBGMを変更したいです。


カレッヂ
カレッヂ


質問者 SiN  投稿日 2003/12/7(日) 13:42:07
ページごとにBGMを変更するのをjavascriptで組めないかと模索しています。

本来なら・・・

function bgm(){
         music = new Array;
		music[0] = "../BGM1.mid";
		music[1] = "../BGM2.mid";
		music[2] = "../BGM3.mid";

みたいにすれば良いのでしょうが、音声ファイルにWAVを使用している事と、
判別する選択肢が50近くある為、読み込みに異常に時間が掛かってしまいます。

それで、呼び出すそれぞれのHTMLにjavascriptで、

floorbgm = '音声ファイルのパス'

と記述し、親フレームのHTMLに、

BGM = document.子フレームのNAME.子フレームに表示されてるレイアー.floorbgm;
document.write('<BGSOUND SRC="'+BGM+'" LOOP="infinite">');

と、やってみたのですが、うまくいきませんでした。

書式のミスや、こっちの方法のほうが良いよ?みたいなご意見等ありましたら是非お願い致します。

※音声の出力がBGSOUNDになっているのは意図的なものです。
 IE専用に作っているもので(汗)。

プロバイダ参照:http://www.cside.ne.jp/
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:NEXTFTP
サーバ移転:していない
改造:していない
CGI習熟度:beginner

回答者 いのちゃん  [削除]  投稿日 2003/12/7(日) 23:06:23
bgmをページに悉く貼り付けてみると言うのも面白い反面聴きたくない人に取ればちょっと
煩い感じもしない訳ではありませんが、それは製作者と訪問者の立場の違いかと存じます。

幾つか実務的に製作したものが有りますが取り敢えず次のurlの分は如何でしょうか?
特色としてはbgmを好きなだけ設定出来ます。
http://www.kcb-net.ne.jp/ki-net/yamaha6.html

その他bgmを設定してありますが、ご趣旨に沿わないような気もしますがご参考の為に
序に載せて見ました。
http://www.kcb-net.ne.jp/ki-net/yamaha.html
http://www.kcb-net.ne.jp/ki-net/yamaha4.html
http://www.kcb-net.ne.jp/ki-net/yamaha5.html
質問者 SiN  [削除]  投稿日 2003/12/8(月) 05:20:39
いのちゃんさん回答ありがとうございます。

BGMのON/OFFできるjavasprictは別に用意してあるので
ウザいと思われる方にも対応できると思います。

張ってあったリンクのソースを見せて頂いたのですが、
あまり良くわかりませんでした。
というか、javascriptでは無くShockwaveなのですか?

私の文章が判り難かったのであれば、すみませんでした。

フレームを活用したサイトで、親フレームにメニュー、子フレームにコンテンツを表示させた場合に
子フレームのコンテンツによってBGMを変えたいと思ったのですが
複数のBGMをページ毎に変更する時、私が知ってるサイトを見る限りで良く使われているのは
子フレームに呼び出されるHTMLに直接ENBLEを張るか、
親フレームのメニューのHTMLにjavascriptでBGMのパスを配列(new array)で設定し、ページ切り替え時に選択するものでした。

これを、配列でBGMのパスを並べずに、子フレームに呼び出されるそれぞれのHTMLにjavascriptでパスを記述し、
親フレームのメニューHTMLから制御して、発声できないだろうか?と、言う事です。

なんでこんな面倒な事をするのかと申しますと、冒頭やいのちゃんさんも云われました、「BGMのON/OFF切り替え」の為です。
子フレーム側に切り替えボタンを付けるなら、EMBLEで音を出せば良いのですが、
子フレームに表示される各ページのBGMのON/OFFを、親フレームのメニューから一括で制御したい(構造上しなければいけない)と、思ったからです。
回答者 いのちゃん  [削除]  投稿日 2003/12/8(月) 15:03:27
>と、やってみたのですが、うまくいきませんでした。
>書式のミスや、こっちの方法のほうが良いよ?みたいなご意見等ありましたら
>是非お願い致します。

おっしゃっている趣旨は最初から分かっておりましたが、後者の方でご参考に
なればと思い幾つかの例をお示ししたまでです。何方かプログラムに精通している
方も沢山おられますので、このご質問欄にご希望の回答があるやも知れないと
当方も期待しております。

質問者 SiN  [削除]  投稿日 2003/12/8(月) 16:15:58
お気に触ったのなら、申し訳ありません。
質問の意図がどうこうと言うことではなくて、
私がShockwaveの扱いを理解できなかった、というだけですから・・・。
回答者 cen_picture21  [削除]  投稿日 2003/12/8(月) 19:07:23
素朴に
IEだけの動作で良いのでしたら各ページのBGSOUNDタグにid属性をいれ、無音のデータを
src属性で指定しておいて、
スクリプトで
id名.src="出したい音のURL"
でうまくいかないでしょうか?
これを親フレームより制御するように改良すればどうでしょうか。

ちなみにこの場合は
document.write('<BGSOUND SRC="'+BGM+'" LOOP="infinite">');
は必要ないと思います。

返信(回答)する

 


Web裏技