Jochen Gebauer: Willkür beim unterbrechen einer Funktion

Beitrag lesen

Hallo,

ich schreibe gerade ein Programm das dem Anwender verschiedene Zeitfenster vorgibt in denen er etwas machen soll (Psychologische Reaktionszeit-Studie).

die Funktionen unten sollen dafür sorgen, dass nachdem die "s" Taste für eine definierte Zeit (hier 501 ms) gedrückt ist ein Wort auf dem Bildschirm erscheint.

Was jetzt passiert ist, dass das meistens funktioniert - ABER NICHT IMMER - und was ich noch weniger verstehe: Wenn ich Die Zeit auf >501 setze, dann funktioniert es überhaupt nicht (d.h. ich drücke eine Ewigkeit und das Wort erscheint einfach nicht. Wenn ich die Taste dann loslasse, dann meldet das Programm, dass ich zu früh losgelassen habe (eine Funktion ich programiert habe) - allerdings kommt diese Meldung auch wenn eigentlich das Wort schon längst hätte erscheinen sollen...

Es wäre toll wenn jemand eine Antwort oder nur einen Denkanstoß parat hätte...

function completeTimer() {
   currentTime                         = new Date() ;
   editedCurrentTime                        = currentTime.getTime() ;
   expiredTimerTime                        = editedCurrentTime - startTimerTime ;
   timer() ;
  }

function timer() {
   if  ( ( timerIsRunning == 1 ) && ( expiredTimerTime < timeOfKeyPressed ) ) {
     window.setTimeout ("completeTimer()", delayTime) ;
   }
   else if ( ( timerIsRunning == 1 ) && ( expiredTimerTime >= timeOfKeyPressed ) ) {
     visibleItem                     = itemSequenceArray[trail] ;
     document.getElementById("visibleItemPosition").innerHTML        = visibleItem ;
     timerIsRunning                    = 0 ;
     expiredTimerTime                    = 0 ;
     decisionTimeRunning                   = 1 ;
     currentTime                     = new Date() ;
     startDecisionTime                    = currentTime.getTime() ;
     decisionTimeFrame() ;
   }
   else {
   }
  }