G
Gil
I'm trying to write a page that allows me to change the background
midi that's playing.
I've been going crazy consulting Google Groups, and coming up with
ingenious solutions, some of which kind of work in some situations.
I'm quite prepared to implement a number of solutions simultaneously
and browser-distinguish to select the right one, but it's hard even to
find the criteria that decide what works in which browser.
I'd be grateful for any advice.
Solution 1 - which looks the cleanest. It works with some IEs -
5.00.2614.3500IS in particular
I put all the desired midis in the body of the page as EMBEDs, with
name properties, then when I want to change the tune, I call a
Javascript function,
function newsong(newname)
{
for (var ii=0; ii < document.embeds.length; ii++)
{
if (oldname == document.embeds[ii].name)
{
document.embeds[ii].stop();
break;
}
}
for (var ii=0; ii < document.embeds.length; ii++)
{
if (newname == document.embeds[ii].name)
{
document.embeds[ii].play();
break;
}
}
oldname = newname;
}
Example http://www.amazonsystems.co.uk/bridge/Page1.htm - The Save
button changes the tune in theory.
Solution 2 - Messy but straightforward - this works with Netscape 4.08
and with IE 5.00.2614.3500IS, but not 5.00.2614.3500
Again, I include and name all the EMBEDs (I have to have MASTERSOUND
for Netscape to work.)
function newsong(newname)
{
document.embedname1.stop();
document.embedname2.stop();
document.embedname3.stop();
....etc.
if (newname == embedname1) document.embedname1.play();
else if (newname == embedname2) document.embedname2.play();
else if (newname == embedname3) document.embedname3.play();
else if (newname == embedname4) document.embedname4.play();
....etc
Example http://www.amazonsystems.co.uk/bridge/Page2.htm - The Save
button changes the tune in theory.
Solution 3 - Messier still - have a separate tiny html page for each
midi, and call it up when required, without releasing the original
page. It seems easier to build a page that works everywhere if you
don't need to change the background sound.
I haven't implemented that, but it's ghastly.
Gil
midi that's playing.
I've been going crazy consulting Google Groups, and coming up with
ingenious solutions, some of which kind of work in some situations.
I'm quite prepared to implement a number of solutions simultaneously
and browser-distinguish to select the right one, but it's hard even to
find the criteria that decide what works in which browser.
I'd be grateful for any advice.
Solution 1 - which looks the cleanest. It works with some IEs -
5.00.2614.3500IS in particular
I put all the desired midis in the body of the page as EMBEDs, with
name properties, then when I want to change the tune, I call a
Javascript function,
function newsong(newname)
{
for (var ii=0; ii < document.embeds.length; ii++)
{
if (oldname == document.embeds[ii].name)
{
document.embeds[ii].stop();
break;
}
}
for (var ii=0; ii < document.embeds.length; ii++)
{
if (newname == document.embeds[ii].name)
{
document.embeds[ii].play();
break;
}
}
oldname = newname;
}
Example http://www.amazonsystems.co.uk/bridge/Page1.htm - The Save
button changes the tune in theory.
Solution 2 - Messy but straightforward - this works with Netscape 4.08
and with IE 5.00.2614.3500IS, but not 5.00.2614.3500
Again, I include and name all the EMBEDs (I have to have MASTERSOUND
for Netscape to work.)
function newsong(newname)
{
document.embedname1.stop();
document.embedname2.stop();
document.embedname3.stop();
....etc.
if (newname == embedname1) document.embedname1.play();
else if (newname == embedname2) document.embedname2.play();
else if (newname == embedname3) document.embedname3.play();
else if (newname == embedname4) document.embedname4.play();
....etc
Example http://www.amazonsystems.co.uk/bridge/Page2.htm - The Save
button changes the tune in theory.
Solution 3 - Messier still - have a separate tiny html page for each
midi, and call it up when required, without releasing the original
page. It seems easier to build a page that works everywhere if you
don't need to change the background sound.
I haven't implemented that, but it's ghastly.
Gil