
Abb. 1: Menü mit roter Linie als Highlight
Unter Navi(gation)-Highlighting versteht man das Hervorheben des aktuellen Menüpunkts zur besseren Orientierung der NutzerInnen. Zur Hervorhebung kann wie in der Abbildung 1 ein zusätzliches Element für das Highlight genutzt werden, z.B. eine Linie, die unter dem jeweils aktuellen Menüpunkt angezeigt wird. Eine weitere Idee ist es, dem aktuellen (oder: selektierten) Menüpunkt eine andere Farbe zu geben. Dies wird weiter unten beschrieben.
Für das direkt folgende Beispiel wurden drei Buttons (“menu_1″, “menu_2″ und “menu_3″) und ein Movieclip (“sel”) so angeordnet wie in Abbildung 1 oben zu erkennen. Um das Menü mit Funktionalität auszustatten und die rote Linie unter den jeweils geklickten Menüpunkt zu verschieben, könnten wir diese wenigen Zeilen verwenden:
menu_1.addEventListener(MouseEvent.CLICK, onClick);
menu_2.addEventListener(MouseEvent.CLICK, onClick);
menu_3.addEventListener(MouseEvent.CLICK, onClick);
function onClick (event:MouseEvent):void {
// ermittele, welcher Menüpunkt (von drei möglichen)
// tatsächlich geklickt wurde
if ( event.currentTarget.name == "menu_1" ) {
// es wurde button A geklickt, mach was!
sel.x = 20;
} else if ( event.currentTarget.name == "menu_2" ) {
// es wurde button B geklickt, mach was!
sel.x = 120;
} else if ( event.currentTarget.name == "menu_3" ) {
// es wurde button C geklickt, mach was!
sel.x = 220;
}
}

Abb. 2: Menü mit weißem Highlight
Im zweiten Beispiel wird auf die Verwendung von Buttons verzichtet. An ihrer statt werden drei Movieclips eingesetzt, die in ihrer eigenen Zeitleiste jeweils drei Frames tragen, worin das Rechteck jeweils eine andere Farbe hat: Frame 1 enthält den “Normal”-Zustand, Frame 2 den “Überrollt”-Zustand und Frame 3 den “Selektiert”-Zustand. Durch geeignete Programmierung wird jeder Movieclip in das gerade benötigte Frame geschickt.
In der Variablen isSelected merken wir uns hier, ob der betreffende Menüpunkt der selektierte ist und fragen hier und dort den Zustand dieser Variablen ab, um den Farbwechsel nur in bestimmten Fällen zu erlauben.
mp_1.isSelected = false;
mp_2.isSelected = false;
mp_3.isSelected = false;
// regelt umfärbung bei überrollen
mp_1.addEventListener(MouseEvent.ROLL_OVER, onRollOverMP);
mp_2.addEventListener(MouseEvent.ROLL_OVER, onRollOverMP);
mp_3.addEventListener(MouseEvent.ROLL_OVER, onRollOverMP);
// regelt umfärbung bei rausrollen
mp_1.addEventListener(MouseEvent.ROLL_OUT, onRollOutMP);
mp_2.addEventListener(MouseEvent.ROLL_OUT, onRollOutMP);
mp_3.addEventListener(MouseEvent.ROLL_OUT, onRollOutMP);
// regelt umfärbung bei klicken
mp_1.addEventListener(MouseEvent.CLICK, onClickMP);
mp_2.addEventListener(MouseEvent.CLICK, onClickMP);
mp_3.addEventListener(MouseEvent.CLICK, onClickMP);
function onClickMP (event:MouseEvent):void {
reset ();
event.currentTarget.gotoAndStop(3);
event.currentTarget.isSelected = true;
}
function onRollOverMP (event:MouseEvent):void {
if (event.target.isSelected == false) {
event.target.gotoAndStop(2);
}
}
function onRollOutMP (event:MouseEvent):void {
if (event.target.isSelected == false) {
event.target.gotoAndStop(1);
}
}
function reset ():void {
mp_1.gotoAndStop(1);
mp_2.gotoAndStop(1);
mp_3.gotoAndStop(1);
mp_1.isSelected = false;
mp_2.isSelected = false;
mp_3.isSelected = false;
}