Just nu i M3-nätverket
Gå till innehåll

Få ett script att loopa(starta om)?


kungmats

Rekommendera Poster

Jag har hittat detta script som skriver ut mina poster som en skrivmaskin i en textruta.

Går det att få den att börja om när den har skrivit alla poster? ... jag är totalt kass på javascript

 

 

	<FORM NAME= "testform" ACTION=" "> 
   <input type="text" NAME="msgbox" style="color:#0000AA; font-size:30px; background-color:#D7D7FD; width:250px; border:#000000 0px solid; "> 
 <script> 
 <!-- Hide from old browsers 
MsgSeperator = '#'; 
CharacterPos=0; 
MsgBuffer         = ""; 
var TypeDelay = 100; 
var NxtMsgDelay   = 1500; 
MsgIndex=0; 
var MsgArray = Array(<?while($r=mysql_fetch_array($data)){$dat=date('j/n', strtotime($r['startdatum'])); $art=$r['artist']; $show= $dat.' '.$art;?>"<?=$show?> #",<?}?>"")

  function StartTyping(CharacterPos) { 
  if (MsgArray[MsgIndex].charAt(CharacterPos) != MsgSeperator) { 
     MsgBuffer    = MsgBuffer + MsgArray[MsgIndex].charAt(CharacterPos) 
    self.document.forms[0].elements[0].value=MsgBuffer 
    delay=TypeDelay 
   }

   else { 
      delay=NxtMsgDelay 
      MsgBuffer   = "" 
    CharacterPos=-1 
if (MsgIndex!=MsgArray.length-1){ 
     MsgIndex++ 
} 
else {MsgIndex=0 } 
   } 
   CharacterPos++ 
   setTimeout("StartTyping('"+CharacterPos+"')",delay) 
 }

//--> 
StartTyping(0) 
</SCRIPT> 

Länk till kommentar
Dela på andra webbplatser

Jag skulle vilja hävda att scriptet redan gör det, kolla kommentarerna nedan.

 

<form name= "testform"> 
<input type="text" NAME="msgbox" style="color:#0000AA; font-size:30px; background-color:#D7D7FD; width:250px; border:#000000 0px solid;"> 
</form>

<script language="JavaScript"> 

MsgSeperator  = '#';  // När detta tecken stöts på hoppar man till nästa meddelande
CharacterPos  = 0;    // Startposition
MsgBuffer     = "";   // Börjar med tomt meddelande
TypeDelay     = 100;  // Millisekunder mellan utskrifterna av bokstäver
NxtMsgDelay   = 1500; // Millisekunder mellan meddelanden
MsgIndex      = 0;    // Vilket meddelande att börja med

// Här kommer meddelandena i en array
MsgArray      = Array("Meddelande nummer 1 #","Meddelande nummer 2 #","Meddelande nummer 3 #")


function StartTyping(CharacterPos) { 
// Om tecknet som skall skrivas ut inte är # så är det bara att köra på.
if (MsgArray[MsgIndex].charAt(CharacterPos) != MsgSeperator) { 
	MsgBuffer    = MsgBuffer + MsgArray[MsgIndex].charAt(CharacterPos) 
	self.document.forms[0].elements[0].value=MsgBuffer 
	delay=TypeDelay 
} 

// Annars, dvs om tecknet är # tömmer man en del variabler
else { 
	delay=NxtMsgDelay 
	MsgBuffer   = "" 
	CharacterPos=-1

	// Om det nuvarande meddelandet inte är det sista i arrayn så hoppar man till nästa
	if (MsgIndex!=MsgArray.length-1) { 
		MsgIndex++ 
	} 

	// Om det nuvarande är det sista så hoppar man till det första
	else {
		MsgIndex=0
	} 
}

// Lägger till 1 till vilken position man skall skriva ut och sedan startar om scriptet efter en delay
CharacterPos++ 
setTimeout("StartTyping('"+CharacterPos+"')",delay) 
}

// Startar scriptet första gången när sidan laddar
StartTyping(0) 
</script>

 

I ditt exempel har du en del php för att tillverka vilka meddelanden som skall skrivas ut, om det inte fungerar så skulle jag gissa att felet ligger där.

Länk till kommentar
Dela på andra webbplatser

Hej Kim..!

 

Tack för din enormt fint utförliga hjälp!

Du har nog rätt. Jag avslutade min sql med "" för att inte få med ett ofrivillgt komma som avslut, men jag skulle nog ha skrivit "#" :)

 

= POÄNG! :)

 

1000 tack!

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...