2009-03-10 8 views
2

Ich habe eine Google Web Toolkit (GWT) -Anwendung, die eine von mir erstellte Flash/PaperVision3D-Komponente verwendet. Die GWT-App platziert Instanzen der Flash-Komponente auf verschiedenen Registerkarten in einem Registerkartenbereich. Während der Ausführung der App funktioniert alles gut, bis der Benutzer zwischen den Tabs klickt. Auf der GWT-Ebene ändert das JavaScript das style.display-Attribut, um den Inhalt der "Registerkarten" auszublenden und anzuzeigen. Es scheint, dass die Flash-Komponente (die auf der Seite durch das Scripting eines 'embed' -Tags enthalten ist) jedes Mal neu geladen/neu gestartet wird, wenn sie sichtbar gemacht wird.Wie kann verhindert werden, dass eine GWT Flash/ActionScript-Komponente neu geladen wird, wenn die Sichtbarkeit umgeschaltet wird?

Wie kann ich verhindern, dass es neu gestartet/neu geladen wird? Ich habe nicht viel Kontrolle über die Tatsache, dass das DIV-Tag auf style.display = 'none' gesetzt wird, da dies vom automatisch generierten GWT-Code gesteuert wird. Gibt es vielleicht eine Einstellung in der Flex/Flash-Entwicklung, um dies zu ermöglichen? Oder vielleicht im Embed-Tag? Oder sogar auf der JavaScript-Ebene?

Antwort

2

Anscheinend ist dies ein Firefox bug. Im Internet Explorer scheint dies kein Problem zu sein.

Eine mögliche Lösung wäre, die Flash-Elemente bereits absolut zu verbergen und zu positionieren ("position: absolute; visibility: hidden;") und dann über eine JavaScript-Funktion sichtbar zu machen, wenn der Benutzer auf eine Registerkarte klickt.

Je nach Komplexität der Flash-Dateien können Sie auch das Objekt ExternalInterface verwenden, das die Kommunikation zwischen JavaScript-Funktionen und ActionScript ermöglicht. Sie können den aktuellen Status des Films speichern und dann diese Statusinformationen zurückgeben, wenn der Benutzer auf die Registerkarte klickt.

Sorry, ich könnte nicht mehr Hilfe sein.

Verwandte Themen