Newsgroup: it.comp.lang.javascript
Titolo: Come posso fare a...

Salve, sono un novellino di JavaScript. Mi rivolgo soprattutto a
Ro<*ż*>berto che mi ha aiutato (naturalmente se qulcun altro decide di
soccorrermi, č ringraziato). Allora, in questo codice .html, io devo
eseguire la musica infinite volte fino a che non si spinge il pulsante, come
faccio? Vorrei anche implementare una funzione che, con due tasti, mi cambi
la musica.
Questo č il listato:
<html>
<head>
<title>Sommario</title>
<base target="principale">
<script language="JavaScript">
<!--
var IE = (navigator.appName.indexOf('Microsoft') >= 0);
var N = (navigator.appName.indexOf('Netscape') >= 0);
var musica = 'indy.wav';
function Cambia_Suono(Cambia){
if(IE)
document.all['musica'].src = (Cambia=="Suona musica")? musica: '' ;
else if(N)
document.embeds[0].src = (Cambia=="Suona musica")? musica : '';
}
function WriteMusic(){
if(IE)
document.write("<bgsound id='musica' src ='"+musica+"'>");
else if(N)
document.write("<embed src = '"+musica+"'>");
}
WriteMusic();
</script>
</head>
<body>
<form>
  <p><input type="button" value="Ferma musica"
onclick="Cambia_Suono(this.value);
if(this.value == 'Ferma musica') this.value = 'Suona musica';else
if(this.value == 'Suona musica') this.value = 'Ferma musica' ;">
  </p>
</form>
</body>
</html>
Grazie a chiunque mi risponda
Andrea
bo...@siapec.it
http://www.siapec.it/andrea

document.embeds[0].stop()
Penso che per IE sia più o meno lo stesso.
CIAO :)

Mi si è sputtan[Biiip]ato proprio oggi il Netscape, comunque penso di essere vicino alla strada giusta...
2 problemini, però:
1) non ho la + pallida idea di come si fermi il BGSOUND - con l'embed basta chiamare stop(),
    ma con BGSOUND??? (ho guardato pure su 
www.html.it
 ma ignora BGSOUND :-(  )
    In tale stato di ignoranza ho risolto temporaneamente chiamando un file sonoro
    vuoto. Che sporchi rimedi di fortuna che bisogna adottare, a volte... :-)
2) mentre stavo facendo funzionare lo script anche su NS questo è morto, come ho detto, quindi, non potendo + debuggare, e giusto per non aver perso del tempo per nulla lo affido alle mani del pubblico...
Ecco un abbozzo molto volgare di aggiustamento al codice originale di Andrea Bondi...
<html>
<head>
<title>Sommario</title>
<base target="principale">
<script language="javascript">
var N= 1*(navigator.appName=='Netscape');
var musicPtr=0, musiche= new Array('Keyra II.mid','Daemens.mid','DDarius2.mid');
var pStr=1, strSuona=new Array('Suona','Ferma');
var aEmb=new Array('BGSOUND ID="musica"','EMBED name="musica" AUTOPLAY=TRUE HIDDEN=TRUE');
<!-- 11 -->
function Cambia_Suono()
{
var tmp= musiche[musicPtr=(++musicPtr<musiche.length)*musicPtr];
if(N)
  document.embeds[0].src=tmp
else document.all['musica'].src=tmp;
}
function SwSound(Status)
{
if (Status) Cambia_Suono();
if(N)
  document.embeds[0].stop()
else //document.all['musica'].stop(); COME SI FA???
  document.all['musica'].src="void.mid";
}
</script>
</head>
<body>
<script language=javascript>
document.write('<'+aEmb[N]+' LOOP=-1 SRC="'+ musiche[musicPtr]+'">');
</script>
<form>
  <input type="button" value="Ferma musica" onclick="SwSound(pStr=1-pStr);this.value=strSuona[pStr]+' musica';">
  <input type="button" value="Cambia" onclick="Cambia_Suono(this.value);">
 
</form>
</body>
</html>
Ciao.
Darius. (
www.infotronica.it/darius/
)

document.write("<embed src = '"+musica+"' >");
document.write("<bgsound id='musica' src ='"+musica+"'
loop='-1'>");
.. puoi caricare tutte le musiche che vuoi
src = "musica.mid";
--
Bye
Ro<*¿*>berto

....ci farai poi "sentire" la pagina quando č on line!!
http://www.probo.it/media/
ci sono le due versioni per embed, con l'uso di array, piů
lento a caricare
la pagina ma poi piů veloce nei cambi di musica e senza....
--
Bye
Ro<*ż*>berto

P.S. x per tutti: IE supporta anche <EMBED> ...
All'inizio qualcuno mi ha detto che IE 5.0 non lo supportava, poi
qualcun'altro che solo ne scongliava l'uso... ma dovrebbe funzionare.