Flash- und Flex-Anwendungen auf einer Web-SeiteFrüher oder später kommt der Zeitpunkt, an dem eine für das Web entwickelte Flash- oder Flex-Anwendung in ein HTML-Dokument integriert werden muß. Die derzeit (sogar von Adobe) empfohlene Methode verwendet die SWFObject-Bibliothek [1], ggfs. in Verbindung mit swffit [2] (falls die Flex-Anwendung automatisch die gesamte verfügbare Fläche in einem Browser-Fenster einnehmen soll). In diesem Artikel beschreibt der Autor die Vorgehensweise, mit der er seine Flash- bzw. Flex-Anwendungen in HTML-Seiten integriert. Flash (und Flex) in HTML-DokumentenFlash ist kein HTML - und zudem eine "proprietäre" Technologie. Folglich müssen ein paar spezielle Vorkehrungen getroffen werden, wenn eine Flash- (oder Flex-)Anwendung in ein HTML-Dokument integriert werden soll. Und wie so oft in diesem Umfeld, hängen die konkreten Maßnahmen von dem jeweils verwendeten Browser, der eingesetzten Plattform, ja sogar von den aktuellen Einstellungen des Benutzers ab. Desweiteren könnte auf dem Rechner des Benutzers u.U. gar kein oder nur ein veraltetes Flash-Plugin installiert sein... Die z.B. von [3] vorgeschlagenen Vorgehensweisen sind im Hinblick auf diese potentiellen Probleme ungeeignet und ziemlich veraltet. Die derzeit wohl fortschrittlichste Methode verwendet die SWFObject-Bibliothek [1]. Folgt man der zugehörigen Anleitung, kann man Flash-Anwendungen unabhängig von den aktuellen JavaScript-Einstellungen auf einer HTML-Seite plazieren - mit JavaScript stehen jedoch mehr Funktionen zur Verfügung als ohne. Soll die Flash-Anwendung die gesamte verfügbare Fläche im Browser-Fenster einnehmen, kann SWFObject mit swffit [2] kombiniert werden - in diesem Fall muß JavaScript jedoch unbedingt aktiviert sein. SWFObject im EinsatzSWFObject unterscheidet zwei Vorgehensweisen bei der Integration von Flash-Anwendungen: eine "statische" und eine "dynamische". Für die "dynamische" Methode muß JavaScript zwingend aktiviert sein, die "statische" Methode kommt zur Not auch ohne JavaScript aus. Die "statische" MethodeFür die "statische" Methode wird die SWF-Datei zunächst einmal fast "wie gewohnt" (allerdings mit einer zusätzlichen, frei wählbaren "Id" für die <object>-Direktive) in das HTML-Dokument integriert - was wie folgt aussehen könnte: <object id="PreloaderDemo" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" (Diese Vorgehensweise kommt noch ganz ohne SWFObject aus, man beachte aber das "id"-Attribut in der ersten Zeile) Als nächstes wird im Kopfbereich des Dokumentes die Datei "swfobject.js" eingebunden und SWFObject auf die Flash-Datei aufmerksam gemacht: <head> Sollte JavaScript deaktiviert sein, greifen die <object>-Direktiven (so gut es eben geht). Mit aktiviertem JavaScript ist SWFObject jedoch in der Lage, die Version eines evtl. bereits installierten Flash-Plugin zu überprüfen und den Benutzer ggfs.um eine Aktualisierung zu bitten. Bei Bedarf können der Flash-/Flex-Anwendung zusätzliche Parameter übergeben werden, Details entnehmen Sie bitte der Dokumentation zu [1]. Die "dynamische" MethodeDie "dynamische" Methode geht davon aus, daß an der Stelle, an der später die Flash-Anwendung erscheinen soll, zunächst einmal nur der "alternative Inhalt" plaziert wird - ohne irgendeinen Hinweis auf die zu integrierende Flash-Datei. Stattdessen wird der alternative Inhalt in einen <div>-Abschnitt mit (frei wählbarer) Id eingeschlossen, und SWFObject im Kopfbereich des HTML-Dokumentes angewiesen, diesen Abschnitt durch die Flash-Anwendung zu ersetzen. Das schöne an dieser Vorgehensweise ist, daß innerhalb des Dokumentes keinerlei unschöne <object>- oder <embed>-Direktiven erscheinen - wer (wie der Autor) einen WYSIWYG-Editor wie z.B. KompoZer [4] einsetzt, kann ein Lied davon singen, wie schwer sich manche Editoren mit solchen Direktiven tun. Alle Details zu der einzubettenden SWF-Datei stehen als JavaScript-Anweisungen in einem <script>-Element innerhalb des Dokumentenkopfes - daran erkennt man auch schon, daß der Benutzer zwingend JavaScript aktiviert haben muß, um mehr als nur den alternativen Inhalt zu sehen. Der Kopfbereich des Dokumentes könnte demnach wie folgt aussehen: <head> während innerhalb des Dokumentes z.B. folgende Zeilen auftauchen würden: <div style="text-align: center;"> (die tatsächlichen Texte für die "alt"- und "title"-Attribute wurden der Einfachheit halber gekürzt) Man beachte, daß die zu ersetzende <div>-Direktive außer dem "id"-Attribut keine weiteren Attribute enthalten sollte (weil diese bei der Ersetzung nicht erhalten bleiben). Stattdessen empfiehlt es sich, das zu ersetzende <div>-Element mit einem weiteren <div>-Element zu umgeben, welches die gewünschten Formatierungsattribute enthält. Auch diese Methode erlaubt die Übergabe von Parametern an die Flash-/Flex-Anwendung, Details entnehmen Sie bitte der Dokumentation zu [1]. Literaturhinweise
|
||||||||||||||||