Marco: Schleife beenden per Taste und/ oder Klick

Hallo,
ich habe bei meinem aktuellen Projekt eine Art Diashow mit javascript geschrieben. Der Benutzer kann
manuell zwischen den einzelnen Bildern wechseln (vor und zurück), soll jedoch auch in den Genuss einer
automatischen Show kommen.

Nun aktiviert man diese Funktion:

function auto()
        {
        setTimeout("init(); showNextLayer(); auto()",6000);
        }

Wie kann ich diese Funktion per Tasteneingabe oder Klick wieder stoppen?
Oder besser, wie schreibe ich sie um?

Vielen Dank im Voraus,
MARCO

  1. Nun aktiviert man diese Funktion:

    function auto()
            {
            setTimeout("init(); showNextLayer(); auto()",6000);
            }

    Wie kann ich diese Funktion per Tasteneingabe oder Klick wieder stoppen?
    Oder besser, wie schreibe ich sie um?

    Ich würde das einem Interval lösen, den man auch wunderbar wieder aufheben kann:

    auto = window.setInterval("showNextLayer()",6000);

    und irgendwo anders:
    onClick="javascript:window.clearInterval(auto)"

    so müsste es gehen...

    Gruß
    Cruz

    1. Ich würde das einem Interval lösen, den man auch wunderbar wieder aufheben kann:

      auto = window.setInterval("showNextLayer()",6000);

      und irgendwo anders:
      onClick="javascript:window.clearInterval(auto)"

      so müsste es gehen...

      Gruß
      Cruz

      oder man macht das so:

      <script blabla>
      var Schleife = 1;
      function auto()
               {
               if (schleife == 1) {
                setTimeout("init(); showNextLayer(); auto()",6000);
                 }
               }

      function switch()
      {
      if (schleife == 1) { schleife = 0; }
      else { schleife = 1; }
      }

      </script>

      onClick="JavaScript:switch()"

      Die Methode hat den Vorteil, daß man hin- und herschalten kann ;)

      mfg
      CK1

      1. Hi,

        hab was vergessen *g* sorry... das Script "switch" sieht eher so aus:

        function switch()
        {
        if (schleife == 1) { schleife = 0; }
        else {
          schleife = 1;
          setTimeout("init(); showNextLayer(); auto()",6000);
          }
        }

        </script>

        1. Hallo CK1, hallo Marco

          function switch()

          »»  {
          »»  if (schleife == 1) { schleife = 0; }
          »»  else {

          schleife = 1;
            setTimeout("init(); showNextLayer(); auto()",6000);
            }

          »»  }

          switch ist ein reserviertes Wort und darf nicht als eigener Funktionsname verwendet werden. Dies führt garantiert zu Problemen.

          Siehe auch: <../../tebg.htm#a3>

          einfachste Lösung des Problems:

          function auto()
                  {
                  aktiv=setTimeout("init(); showNextLayer(); auto()",6000);
                  }

          function anhalten()
          {
          if (aktiv)
              { clearTimeout(aktiv);aktiv=false;}
               else auto();
          }

          <a href="#" onClick="anhalten();return false;">An/Aus</a>

          Damit ist es auch möglich, den automatischen Ablauf erneut zu aktivieren.

          Viele Grüße

          Antje

          1. Hi,

            switch ist ein reserviertes Wort und darf nicht als eigener Funktionsname verwendet werden. Dies führt garantiert zu Problemen.

            Puhh, na gut, aber der Funktionsname ist doch vollkommen Wurst ;) dann nenn sie halt "schalter" *g*

            mfg
            CK1

            1. Man woher habt ihr eigentlich so viel Freizeit? LOL