Zurück-Button des Browsers und Flash-Menu

MontyBurns

Mitglied
Hallo allerseits,

ich habe nun schon seit geraumer Zeit eine Frage auf dem Herzen, zu der ich nirgends eine Antwort gefunden habe. Ich hoffe, dass irgendwer sich mit diesem Problem schon mal beschäftigt hat:


Die Situation/Das Problem:
Man stelle sich vor, man hat ein Menu in Flash und schaltet damit in einem anderen Frame nen Haufen verschiedene HTML-Seiten (Inhalte) hin und her. Also eher eine normale Situation.

Man stelle sich zudem vor, dass man gerne den Menüpunkt, dessen zugehörige HTML-Seite gerade angezeigt wird gehighlighted lassen will, um dem User die Übersichtlichkeit nicht unnötig zu erschweren.

Nun kommt aber ein User auf den Gedanken, er könnte doch einfach den "Zurück-Button" des Browsers verwenden, um auf die zuvor besuchte Seite zurückzukommen.

Das funktioniert zwar für die HTML-Seite, aber leider ist im Flash-Menu dann ein falscher Punkt gehighlighted. Nämlich, weil sich im Frame, wo das Flash-Menu ist, sich ja nix geändert hat (zumindest denkt das der Browser).


Die Frage:
Kann man innerhalb vom Flash-Menü irgendwas einbauen, was kontrolliert, welche HTML-Seite gerade sichtbar ist? Vielleicht dass das Menü auf den DOM-Tree der HTML-Seite zugreift und die Überschrift ausliest oder ne Kontrollvariable oder sowas?

Bzw. kann man Flash an sich auf den Zurück-Button des Browsers reagieren lassen, ohne auf jede einzelne HTML-Seite das gleiche Menü (nur halt mit nem anderen Highlight am Start sichtbar) einzubetten?

Oder gibt es nen Weg, an den ich gar nicht denke, momentan?


Ich bin für alle Antworten dankbar und werde in nächster Zeit mal ein Tutorial schreiben mit mehreren verschiedenen Sonderfällen, die mir in meiner Laufbahn so begegnet sind.
..und natürlich wäre der oben beschriebene Fall ein Teil davon.


greetz
Monty
 
Hi,

setze in den einzelnen Frames ein onLoad-Ereignis im body-Tag, welches eine JavaScript-Funktion im oberen Frame aufruft. Etwa so:
HTML:
<body onload="_parent.navi.setActiveButton('kontakt');">
Als Parameter (hier: "kontakt") übergibst Du den Namen der jeweiligen Unterseite.

Nun legst Du im oberen Frame (der die Flash-Navi enthält, hier "navi" genannt) diese JS-Funktion an:
Javascript:
function setActiveButton(str) {
  var movieName = "menue";
  var movie = (navigator.appName.indexOf("Microsoft") != -1)? window[movieName] : document[movieName];
  movie .showNavi(str);
}
Als "movieName" gibst Du die ID des Flashfilms im Object-Tag (bzw. den "name" im Embed-Tag) an.

In Deinem Flash-Menü kannst Du nun mit der addCallback-Methode der ExternalInterface-Klasse auf diesen Funktionsaufruf reagieren und in Abhängigkeit der übergebenen Variable den aktiven Button setzen (schau dazu in der Referenz unter "ActionScript-Klassen > ExternalInterface (flash.external.ExternalInterface) > addCallback (ExternalInterface.addCallback-Methode)" nach).

Gruß
.
 

Neue Beiträge

Zurück