Newsgroup: it.comp.lang.javascript
Titolo: Dov'è l'errore

Potete dirmi per piacere cosa c'è che non va?
Si tratta di un messaggio scorrevole sulla status bar la cui direzione
cambia dopo un intervallo di 3 secondi.
Grazie in anticipo
  Sara
<html>
<head>
	<title>Untitled</title>
</head>
<script language="JavaScript">
msg = "Esempio di testo scorrevole...   "
function VersoSx() {
	pos = 0;
	function SpostaCursore1() {
		window.status = msg.substring (pos, msg.length) +
msg.substring (0, pos);
		pos++;
		if (pos > msg.length) pos = 0;
		window.setTimeout ("SpostaCursore1()", 200);
	}
window.setTimeout ("CambioDirez()", 3000);
}
function CambioDirez() {
	pos = 34;
	function SpostaCursore2() {
		window.status = msg.substring (pos, msg.length) +
msg.substring (0, pos);
		pos--;
		if (pos ==0) pos = 34;
		window.setTimeout ("SpostaCursore2()", 200);
	}
window.setTimeout ("VersoSx()", 3000);
}
</script>
<body onLoad="VersoSx(msg);return=true;"></body>
</html>
Sent via Deja.com 
http://www.deja.com/
Before you buy.

   Sara
Francamente mi sono arreso subito era troppo ridondante e le funzioni venivano attivate troppe volte (leggi piů sottoo).
Ho perferito riscriverti lo script.
-----Begin---------------
<Script Language="JavaScript">
<!--
var msg = "Esempio di testo scorrevole...   "
var pos=0;
var sx=0;
function SpostaCursore()
 {
 sx==1?pos++:pos--
 document.doveva.valore.value=sx;
 window.status=msg.substring (pos, msg.length) + msg.substring (0, pos);
 sx==1?(pos > msg.length?pos = 0:null):(pos ==0?pos = 34:null)
 tim2=setTimeout("SpostaCursore()",100);
 }
function Inverti(start)
 {
 sx=1-sx;
 tim1=setTimeout ("Inverti()", 3000);
 (start)?SpostaCursore():null
 start=false;
 }
//-->
</SCRIPT>
---End-----------------
Nel tag BODY devi mettere "onLoad=Inverti(true)".
Il motivo č presto detto, se SpostaCursore() viene triggerata ogni volta che cambia direzione, il browser la esegue di nuovo, ma non sostituisce il thread, ne aggiunge un altro. Cosě al primo cambio
di direzione ci sono due SpostaCursore() che funzionano, al secondo cambio ce ne sono tre, al terzo diventano quattro, ecc. In pratica dopo mezzo minuto lo script, pur facendo il suo egregio dovere,
sembra che impazzisca perché va sempre piů veloce.
Ponendo start uguale a true alla prima chiamata nell'onLoad la SpostaCursore() viene lanciata una volta per tutte. Alla prima uscita dalla funzione Inverti() la variabile start viene posta a false e
SpostaCursore() non viene chiamata piů.
Attenzione ai punto-e-virgola. Dove non ci sono NON DEVONO esserci.
Per provarlo sostituiscilo semplicemente al tuo.
Ciao, Riccardo
-----------------------------------------------------------------------
http://www.bottegasanlorenzo.it
http://www.jsdir.com
Need a JavaScript password?
http://www.agora.it/Ri.Riccardi/ingresso.html
-----------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
Arthur Charles Clarke
-----------------------------------------------------------------------


Innanzitutto ti ringrazio per aver risposto al mio messaggio, tuttavia
il tuo script mi segnala diversi errori con IE5.
Inoltre non comprendo bene la linea: "document.doveva.valore.value=sx;".
Grazie per la tua disponibilità.
  Sara
  ICQ:#5848081


 Grazie per la tua disponibilità.
Per IE non ti posso aiutare, magari più tardi lo provo sotto IE3 (l'unico che ho :-) e ti faccio sapere.
Il "document.doveva.valore.value=sx" è un refuso della mia pagina HTML con cui ho sviluppato. In pratica avevo un campo di testo in un form che mi faceva vedere il valore si SX (1 o 0) per capire se
si stava aggiornando. Scusami, ma ho semplicemente dimenticato di togliere la linea di codice prima di postare lo script. Un taglio e via .
Ciao, Riccardo
-----------------------------------------------------------------------
