15 Mrz 2008

SWFObject ist ein Skript, das dazu dient, Flashdateien (.swf) in HTML-Seiten einzubetten. Das Skripte (JavaScript) ist sehr einfach zu nutzen und hat viele Vorteile wie Flash-Plugin-Erkennung, keinen Aktivierungsrahmen beim Internet Explorer, W3C-Validität oder Unterstützung der Express Installation.
Gestern wurde nach 14 Monaten der Nachfolger des populären SWFObject 1.5 veröffentlicht: SWFObject 2 (ehemals SWFFix). Grund genug, eine Blick darauf zuwerfen, wie es funktioniert.
Grundsätzlich gibt es zwei verschiedene Methoden, um die Flash-Inhalte mit SWFObject einzubetten:
Bei Static Publishing werden sowohl Flash als auch der alternative Inhalt, wenn Flash nicht installiert ist, über gewöhnliches HTML integriert. JavaScript wird nur dazu verwendet, Probleme zu beseitigen, die über HTML nicht gelöst werden können.
Die Vorteile dieser Methode sind, dass der Flashinhalt auch bei deaktiviertem JavaScript dargestellt wird. Integrierte Flashdateien laufen damit beispielsweise auch auf der Sony PSP, die JavaScript nur mangelhaft unterstützt. Des Weiteren sollen z.B. RSS Reader die Flashinhalte dank dieser Einbettungsmethode darstellen.
Ein Beispielcode lautet folgendermaßen:
Die classid und type sind feste Werte. data und value legen die URL der SWF-Datei fest, width und height die darzustellende Größe des SWF-Files. Wie man sieht, müssen manche Werte doppelt eingepflegt werden.
Folgende Parameter sind für param zur Konfiguration der Flashdatei möglich:
Jetzt zum SWFObject: Wichtig ist, dass im Header mit der Zeile <script type="text/javascript" src="swfobject.js"></script> das SWFObject eingebunden wird. Mit registerObject wird eine Flashdatei "registriert". Über eine ID (im Beispiel "meinFlash") wird der Bezug zum weiteruntenstehenden Code hergestellt. Zusätzlich gibt man die unterstützte Flashversion (z.B. ab 9.0.0) und den Pfad zur Express-Installation an.
Zu erwähnen ist noch, dass der alternative Content, wenn Flash veraltet oder gar nicht vorhanden ist, selbst wählbar ist. Auch wird dieser Inhalt von den Suchmaschinen indiziert.
Demo: Static Publishing
Dynamic Publishing entspricht der Verfahrensweise des bisherigen SWFObjects 1.5. Der alternative Inhalt, wenn kein Flash vorhanden ist, wird ganz gewöhnlich über HTML erstellt. Per JavaScript werden die Flashinhalte zur Laufzeit eingefügt.
Diese Methode hat den Vorteil, dass das Authoring leichter und weniger umständlich ist und kein redundanter Code geschrieben wird. Außerdem wichtig: Es wird der "click-to-activate" Mechanismus verhindert, der beim Internet Explorer ab Version 6 (IE6, IE7) und bei Opera ab Version 9 auftritt.
Ein Beispielcode für diese Variante lautet:
Möchte man z.B. Flashvars ergänzen, hier ein Beispiel aus meinem FLV Player, der schon seit einiger Zeit die Beta von SWFObject 2 nutzt:
Einen Parameter aus der URL (z.B. test.html?video=demo.flv) zu erfassen, funktioniert mit SWFObject übrigens so: swfobject.getQueryParamValue("video").
Demo: Dynamic Publishing
Zu Methode 1: Laut Entwicklerteam haben ca. 80% der Nutzer den IE6, IE 7 oder Opera. Deshalb wird bei diesen Anwendern der "click-to-activate" auftreten, was natürlich nicht wünschenswert ist.
Zu Methode 2: Sechs Prozent haben JavaScript deaktiviert bzw. der Browser unterstützt kein JavaScript. Diese Nutzer werden also, trotz installiertem Flash Player, kein Flashcontent zu sehen bekommen. Es erscheint der alternative Content.
Meines Erachtens spricht dies in den meisten Fällen dafür, dass man auf Methode 2 setzen sollte.
Demo: Static Publishing
Demo: Dynamic Publishing
Link:
14 Kommentare zum Beitrag "SWFObject 2.0 final: SWFObject zum Einbetten von Flash (.swf) in HTML"
[...] in HTML Seiten zu integrieren, sondern bringt noch viele nützliche Features mit. Florian Plag hat in seinem Blog die wichtigsten Neuerungen [...]
Das “click-to-activate” wird laut Microsoft im Verlaufe der nächsten Monate wieder entfernt. Anscheinend hat man sich bezüglich des Eolas-Patents einigen können.
Stimmt, das habe ich gelesen. Hier der passende Link:
Da der User jedoch erst ein Update installieren muss, wird es sicher recht lange dauern, bis dieses leidige “click-to-activate”-Problem endgültig beseitig ist.
Außerdem habe ich nirgends gefunden, ob das nur für den Internet Explorer 7 (IE7) kommen wird, oder auch für den IE6 …
Ich würde ergänzender weise noch dazu schreiben, das man mit dem -Tag auch bei der dynamischen Einbindung die Clients ohne JS abfangen kann. Allerdings muss man dazu den alternativen Kontent auch mit JS schreiben, z.B mit “document.write(”Alternatives html”);”
ZUSATZ: “-Tag” soll heißen “NOSCRIPT-Tag”.
Der [kleiner als]CONTENT[größer als] - Text wurde beim posten entfernt.
-> nutze dafür bitte htmlentities() in PHP
Danke für den nützlichen Hinweis. Habe auch die HTML-Zeichen in den Comments deaktiviert, ab jetzt müsste alles korrekt angezeigt werden.
SWFObject 2.1 steht in den Startlöchern:
[...] Nützliche Dokumentationen und genaue Erläuterungen zum Thema: http://www.video-flash.de [...]
SWFObject wird zum Standard in CS4…
Gute Neuigkeiten für alle SWFObject-Nutzer. Adobe arbeitet scheinbar an der Integration von SWFObject für die kommende Creative Suite 4 (CS4) …
In der Juni-Edition des Adobe Edge Newsletters wird eine Neuheit bezüglich des Features “Ins…
Hi,
bei mir auf dem Safari geht keins deiner Demo-Video.
Liegt das an SWFObject 2.0?
<strong>Version 2.1: Update für SWFObject…</strong>
Das erste Update von SWFObject 2 ist verfügbar. Die Version SWFObject 2.1 enthält neben einigen Bugfixes auch neue Funktionalitäten.
Zu den beseitigten Problemen zählen z.B.:
Memory Leaks im Internet Explorer
Fixes für Internet Explorer 5.0/5.5
A…
[...] nach gut zweist�ndigem Googlen drei Wege gefunden. Statisches und dynamisches Publishing in der Art und immernoch als Object in der Art. Nur haut keines von denen mit dem wmode=transparent so [...]
[...] vorliegt und dank Powerflasher (Blog) sogar mit sehr guter Deutsche Doku. Ich empfehle - wie viele andere auch - die Methode dynamic [...]
Die Hintergrundfarbe des Flashbereichs kann durch diese Zeile geändert werden:
params.bgcolor = “#ff0000″;
Schreibe einen Kommentar