Laufschrift erklären

Halo Forum,

wer kann mir folgende Laufschrift erklären. Warum sie läuft und welche Schritte zusammengehören. Wäre super, wenn mir jemand helfen könnte!

var Text=„Hallo und herzlich Willkommen“;
var Geschwindigkeit = 0;
var Breite = 100;
var TextLaenge = Text.length;
var Position = 1 - Breite;
function StatusLauftext()
{
Position++;
var Textzustand ="";
if (Position == TextLaenge)
{
Position = 1 - Breite;
}
if (Position

wer kann mir folgende Laufschrift erklären. Warum sie läuft
und welche Schritte zusammengehören.

wie soll man sowas erklaeren *sichamkopfkratzt*?
spiele javascript interpreter, lies den code und sprich laut, was du tust…

das prinzip:
a) verschiebe den text
b) wenn der text an der endposition ist verschiebe ihn an die anfangsposition
c) zeige den text,
d) warte eine gewisse zeit und mach weiter bei a)

die verschiebung wird dadurch erriecht, dass man jeweils nur einen ausschnitt des textes zeigt:

[scrolltext]
[crolltext]
[rolltext]
[olltext]

das hat dir jetzt nciht wirklich geholfen, oder?

Hallo und Danke,

tja soweit bin ich auch schon. Da wird z. B.
in der nachfolgenden Zeile eine variable mit Leerzeichen gefüllt.
Textzustand = Textzustand + " " ;

und in dieser Zeile wird an die Leerzeichen immer ein Zeichen aus der var Text angefügt.
Textzustand = Textzustand + Text.substring(0,Breite-Zaehler + 1);

Wozu dient also die nächste Zeile
Textzustand = Textzustand + Text.substring(Position,Breite+Position)

Eine kleine Erklärung wäre super.

Vielen Dank
Warum

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

tja soweit bin ich auch schon. Da wird z. B.
in der nachfolgenden Zeile eine variable mit Leerzeichen
gefüllt.
Textzustand = Textzustand + " " ;

nein, du musst den zusammanhang sehen… das ding steht in einer schleife und heisst dann:

 //haenge an textzustand soviele leerzeichen an, wie die aktuelle position lautet
 for (var Zaehler = 1; Zaehler



> und in dieser Zeile wird an die Leerzeichen immer ein Zeichen  
> aus der var Text angefügt.  
> Textzustand = Textzustand + Text.substring(0,Breite-Zaehler +  
> 1);

nein, wieso ein zeichen? du hast den code falsch gelesen


    
     //nimm von text beginnend von vorn soviele zeichen, und haenge sie an textzustand an
     //wie benoetigt werden um wieder auf die breite zu kommen 
     Textzustand = Textzustand + Text.substring(0,Breite-Zaehler + 1);






> Wozu dient also die nächste Zeile  
> Textzustand = Textzustand +  
> Text.substring(Position,Breite+Position)


hier hast du den zusammanhang mit dem if-block nciht verstanden, oben waren die anweisungen fuer den fall, dass der text rechts von der 0 position beginnt, dieser ist fuer den fall, dass der text links von der 0 position beginnt. und lautet:

 //nimm von text beginnend von vorn soviele zeichen, und haenge sie an textzustand an
 //wie benoetigt werden um wieder auf die breite zu kommen 
 Textzustand = Textzustand + Text.substring(0,Breite-Zaehler + 1);


noch mal im ganzen, so halbwegs, ist z.t. nciht so leicht auszudruecken:


    
    
    var Text="Hallo und herzlich Willkommen";
    var Geschwindigkeit = 50;
    var Breite = 100;
    var TextLaenge = Text.length;
    var Position = 1 - Breite;
    
    
    function StatusLauftext()
     {
     //erhoehe den wert position um eins (startwert sind -99, da ini auf 1 - breite, s.o.)
     Position++;
    
     //textzustand soll ausgegeben werden, da das bei jedem durchlauf ein anderer wert ist initialiseren auf ""
     var Textzustand ="";
    
     //wenn die aktuelle position gleich der laenge des textes ist
     //dann setze position auf den ausgangswert
     if (Position == TextLaenge)
     { Position = 1 - Breite; }
    
     //wenn die position kleiner 0 ist
     if (Position \< 0)
     {
     //haenge an textzustand soviele leerzeichen an, wie die aktuelle position lautet
     for (var Zaehler = 1; Zaehler\<=Math.abs(Position);Zaehler++)
     { Textzustand = Textzustand + " " ; }
    
     //zaehler steht jetzt auf dem wert position+1
    
     //nimm von text beginnend von vorn soviele zeichen, und haenge sie an textzustand an
     //wie benoetigt werden um wieder auf die breite zu kommen 
     Textzustand = Textzustand + Text.substring(0,Breite-Zaehler + 1);
     }
     //wenn die position groesser 0 ist
     else
     {
     //haenge an textzustand den sichtbaren ausschnitt an
     Textzustand = Textzustand + Text.substring(Position,Breite+Position);
     }
     //gib textzustand aus
     window.status = Textzustand;
    
     //warte bis geschwindigkeit abgelaufen ist und beginne dann von vorn
     setTimeout("StatusLauftext()",Geschwindigkeit);
     }