Neuladen von Flashfilm vermeiden

braungraphix

Erfahrenes Mitglied
Malzeit an alle,

habe mal wieder eine nette Aufgabe zugeteilt bekommen. Habe die Ehre, ein Projekt eines ehemaligen Mitarbeiters weiterzuführen, welcher nicht wirklich auf Ordnung geachtet hat. Mal ein paar Zahlen 40 HTML-Seiten und ca. 14 Flash Dokumente für eine minimalistische Internetseite. Hier kommen wir nun auch schon fast zu meinem Problem, ich soll Änderungen vornehmen die vom Kunden und vom Chef gewünscht werden.
In jeder der HTML-Seiten befindet sich ein Flashmenü, was bei jedem Aufruf einer neuen Seite auch neu geladen wird. Nun wünscht sich mein Chef allerdings, dass die Animation nur neu ausgeführt wird, wenn man in eine neue Hauptkategorie gelangt. Kann ich in den HTML Dokumenten einen Befehl eingeben, der verhindert, dass das Menü immer neu geladen wird?
Ich darf das Menü leider nicht neubauen und oder abändern, da dies vom Kunden so schon abgenommen wurde.Leider habe ich derzeit auch nicht die Möglichkeit eine Datei zu posten. Vielleicht versteht Ihr ja um was es mir geht.
 
Hi,

das Neuladen ansich kannst Du bei einem Seitenwechsel nicht vermeiden (der Workaround hiesse hier: Frameset, was aber wohl ausser Frage steht).

Du könntest jedem internen Link allerdings einen Parameter mitgeben, der dem Menü mitteilt, ob die Animation erneut abgespielt werden soll, oder nicht:
Code:
<a href="sonstwas.htm?ani=false">Klick</a>
Gehen die Links an ein PHP-Script (oder was anderes serverseitiges), schreibst Du den Parameter am besten in die FlashVars - ansonsten brauchst Du ein JavaScript, dass nach dem onLoad-Ereignis den Query-String ausliest und den entsprechenden Parameter via Flash-Methods an den Film übergibt.

Gruß
.
 
Danke für die schnelle Antwort. Also die Links sind direkt unter Flash per getUrl zugewiesen worden. Verstehe ich das richtig, ich muss Flash dann per Variabel neu mitteilen, dass wenn ich einen Link einer Unterkategorie anklicke, die Flashdatei nicht neu abspielt? Weiterhin muss ich dann doch bestimmt noch etwas auf der neu geladenen Seite zuweisen oder?
Mal zum Flashmenü vielleicht vereinfacht es das alles etwas. Es wurde ein Menü angelegt für die Hauptseiten und eins für die Unterseiten. Für jede der Menüs wird immer ein SWF für das Untermenü geladen. Sehr umstendlich ich braucht auch erst einmal 2 Tage bis ich die Struktur verstanden habe.
 
... ganz klar ist mir die Struktur auch noch nicht. ;)

Parameter kannst Du jedenfalls auch per getURL übergeben. Passieren müsste in etwa folgendes:
  • Beim Klick wird z.B. folgender Link aufgerufen:
Code:
getURL("unterseite2.htm?noani", "_self");


  • Auf allen Seiten gibt es ein kleines JavaScript:
Javascript:
var d1 = document.getElementById("menue"); // IE
var d2 = document.menue; // Geckos
var noani = (window.location.search == "noani")? true : false;
try {
	d1.SetVariable("noani", noani);
} catch(e) {
	d2.SetVariable("noani", noani);
}
Dein Flashfilm muss nun darauf warten, dass die Variable "noani" gesetzt ist. Steht sie auf "true", wird die Animation eben nicht abgespielt.


  • Dein Flashfilm muss in diesem Beispiel die id "menue" im Object-Tag haben und das name-Attribut des Embed-Tags ebenfallsden Wert "menu".

Gruß
.
 
Leider funktioniert es bei dieser form der Menüführung nicht. Das Probelm ist wahrscheinlich, dass das Hauptmenü beim Klick noch die Untermenüs lädt. Die Variable wird ja somit nur vom Untermenü übergeben und das Hauptmenü lädt trotzdem. Gibt es noch eine andere Möglichkeit Flash zu sagen, dass wenn ein Button angeklickt wurde, dass dann auf Seite x und Seite y das Menü neu geladen werden soll? Sollte es keine Lösung geben muss ich halt meinen ganzen Mut zusammennehmen und Chef sagen, dass es umgebaut werden muss. Wäre allerdings über jeben weiteren Ratschlag dankbar.
 
Hi,

Du könntest versuchen, den jeweiligen Status in einem SharedObject abzulegen (eine Art Flash-eigener Cookie auf dem Clientsystem): Beim Klick auf einen Untermenüpunkt wird vermerkt, dass beim nächsten Mal keine Animation abgespielt werden soll. Auch diese Lösung verlangt nach dem Neuladen eine Überprüfung der Daten in diesem Objekt, in sofern ist mir nicht ganz klar, warum so eine Überprüfung (die ja auch bei der JS-Variante nötig ist) bei Dir nicht klappen will. Der Hauptfilm kann doch alle vorhandenen Variablen auch an nachgeladene Unterfilme übergeben.

Ohne die Quelldateien und die komplette Struktur einzusehen, kann ich hier leider nicht mehr tun, als auf diese Weise im "Trüben zu Fischen". ;)

Gruß
.
 
Danke noch mal für deine Tipps. Ich werde noch mal versuchen das umzusetzen. Chef überzeugt es noch nicht und so wie ich Ihn kenne dauert das auch noch bis er eine Entscheidung trifft. Melde mich wenn ich mehr weiß.
 
Zurück