Just nu i M3-nätverket
Jump to content

Få ett script att loopa(starta om)?


kungmats

Recommended Posts

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> 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...