Kess: MouseOver-Event

Beitrag lesen

Hallo Achim,

wie kann ich während eines Skriptdurchlaufs (do-while-Schleife) feststellen, ob der Mauszeiger sich noch über einem speziellen Bild befindet? Der
Skript soll abbrechen, sobald der Mauszeiger von dem Objekt wegbewegt wird.

ereignisgesteuerte Programmierung ist nicht immer ganz einfach verstehen. Sie funktioniert nicht als ein einziger kontinuierlicher Programmablauf, sondern die durch Events angestossenen Scripts starten unabhaengig voneinander. Der Event OnMouseOver tritt ein, wenn sich die Maus ueber einem Objekt befindet. Der Event OnMouseOut tritt ein, wenn sich die Mouse vom Objekt fortbewegt, also sich nicht mehr ueber dem Objekt befindet. Beide Events koennen Scripts anstossen, die dann unabhaengig voneinander ablaufen. Das durch OnMouseOver gestartete Script weiss nichts von dem durch OnMouseOut gestarteten und umgekehrt.
Oder anders ausgedrueckt: Tritt ein Ereignis ein, wird eine Verarbeitung gestartet. Sie laeuft bis zum Ende durch, unabhaengig von weiteren moeglicherweise eintretenden Eriegnissen. Diese werden dem Script nicht mehr mitgeteilt, sondern starten eigene Verarbeitungen.
Du muesstest also im Script, das durch OnMouseOver gestartet wird, selbst permanent die Mouseposition ueberpruefen und die weitere Verarbeitung davon abhaengig machen. Einfach geht es allerdings mit einem Schalter, der von mehreren Scripts bedient werden kann. Startet das Script auf das Ereignis OnMouseOver hin, dann wird der Schalter auf "ein" gesetzt. Bei OnMouseOut startet ein andereres Script, welches diesen Schalter wieder auf "aus" setzt. Als Schalter benutzt man eine Variable.
Beispiel:
var Schalter = "aus"

function MausUeberBild() {
  Schalter = "ein";
  ...
  while (Schalter = "ein") {
    ...
  }
}

function MausAway[] {
  Schalter = "aus"
}

Viele Gruesse
  Kess