Stef: Hilfe - Möchte Bild austauschen - warten - und wieder anzeigen

Hallo zusammen.
Bin langsam am verzweifeln. Ich möchte ein Bild austauschen, etwas warten und dann wieder das Originalbild anzeigen. Aber irgendwie geht's nicht. Ein einmaliger Bildwechsel funktioniert. Ebenfalls wenn ich nach dem Funktionsaufruf fdrot() einen alert einbaue...

Danke im voraus! Stef

Habe folgenden reduzierten Code:

<html>

<head>
<script type="text/javascript">
    function austauschen(){
       fdrot();
       unterbruch();
       fhrot();
    }

function unterbruch(){
       aktzeit = new Date().getTime();
       stopzeit = aktzeit + 2000;
       while (aktzeit <= stopzeit){
          aktzeit = new Date().getTime();
       }
    }

function fdrot(){
       document.brot.src="rot.jpg";
    }
    function fhrot(){
       document.brot.src="hrot.jpg";
    }

</script>

<title></title>

</head>

<body>

</body>
    <IMG NAME="brot" SRC="hrot.jpg">

<INPUT NAME="submit" TYPE=Button VALUE="Start" onClick="austauschen()">
</html>

  1. Hi,

    function austauschen(){
           fdrot();
           unterbruch();
           fhrot();
        }

    function unterbruch(){
           aktzeit = new Date().getTime();
           stopzeit = aktzeit + 2000;
           while (aktzeit <= stopzeit){
              aktzeit = new Date().getTime();
           }
        }

    "Dein Name ist Hans. Lauf zwanzig Runden um den Exerzierplatz. Dein Name ist Fred. Wie lautet Dein Name?"

    Was meinst Du wohl, wird der arme Kerl "Hans" antworten? Eher nicht. Anders als bei Soldaten ist es übrigens bei Browsern keine gute Idee, ihnen eine Beschäftigungstherapie aufzuerlegen und sie sekundenlang stur Berechnungen durchführen zu lassen. Der Browser ist in der Zeit nicht in der Lage, etwas anderes zu tun - er wird höchstens irgendwann den Nutzer fragen, ob er mit dem Stumpfsinn weitermachen oder doch lieber abbrechen soll.

    Beschäftige Dich mit Timeouts,

    <body>

    </body>
        <IMG NAME="brot" SRC="hrot.jpg">

    validem Code und der Sinnhaftigkeit dessen, HTML möglichst weit XHTML-konform zu schreiben.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo

      Besten Dank für deine promte Antwort. setTimeout() habe ich auch schon in Betracht gezogen. Da ich aber sehr viele Abhängigkeiten haben werde, dachte ich einen Ablaufunterbruch von ca. 1 bis 2 Sekunden wäre das einfachste.

      Alle die Abhängigkeiten mit setTimeout() zu berechnen und abzufangen ist seeeeeeeehr schwierig und birgt eine grosse Unsicherheit um sicherzustellen, dass alle Schritte abgearbeitet sind.

      Weisst du oder sonst jemand eine Lösung um Javasript pausieren zu lassen?

      Danke nochmals

      (In der Zwischenzeit mach ich mir mal Gedanken über die Realisierbarkeit mit dem verzögerten Start von Funktionen!)

      1. Weisst du oder sonst jemand eine Lösung um Javasript pausieren zu lassen?

        Es gibt keine.

        (In der Zwischenzeit mach ich mir mal Gedanken über die Realisierbarkeit mit dem verzögerten Start von Funktionen!)

        Das wäre sinnvoller.

        Struppi.

      2. Hallo

        Besten Dank für deine promte Antwort. setTimeout() habe ich auch schon in Betracht gezogen. Da ich aber sehr viele Abhängigkeiten haben werde, dachte ich einen Ablaufunterbruch von ca. 1 bis 2 Sekunden wäre das einfachste.

        Alle die Abhängigkeiten mit setTimeout() zu berechnen und abzufangen ist seeeeeeeehr schwierig und birgt eine grosse Unsicherheit um sicherzustellen, dass alle Schritte abgearbeitet sind.

          
        function austauschen(cont){ // cont ist die Funktion, die nachher weitermacht  
            fdrot();  
            setTimeout(function(){  
                fhrot();  
                cont(); // nach zwei Sekunden weitermachen  
            }, 2000);  
        }  
        
        

        (wenn du nicht auf die Abhängigkeiten verzichten kannst - viel Spaß beim debuggen)

        Grüße, vrs

      3. Besten Dank für deine promte Antwort. setTimeout() habe ich auch schon in Betracht gezogen. Da ich aber sehr viele Abhängigkeiten haben werde

        Was meinst du mit Abhängigkeiten?
        Was spricht gegen Timeouts, womit hast du Schwierigkeiten?

        Alle die Abhängigkeiten mit setTimeout() zu berechnen und abzufangen ist seeeeeeeehr schwierig

        Wieso, inwiefern ist das schwierig?

        und birgt eine grosse Unsicherheit um sicherzustellen, dass alle Schritte abgearbeitet sind.

        Welche Schritte? Ich dachte, du willst Bilder austauschen - wovon redest du nun?

        Mathias