Erweiterte Flash Grundlagen: Tag Attribute

Artikel: WMode, Erweiterte Grundlagen | 22.01.2008

Der wmode steuert ob eine Flashdatei transparent ist oder sich über andere Elemente legen darf.
Dieser Parameter wird ab einem Flashplayer 6,0,65,0 für Windows oder Flashplayer 6,0,67,0 für Macintosh unterstützt.

Inhalt

Übersicht WMODE

Diese übersicht zeigt die einzelnen WMODES und deren Verwendungszweck.

WMODEBeschreibung
window
Default
Die Einstellung sorgt dafür das die Flashdatei in einen eigenen Fenster angezeigt wird.
Dieses Fenster ist zwar nicht direkt sichtbar, jedoch hat es Auswirkung auf andere Elemente auf der Webseite. Diese werden immer hinter der Flashdatei dargestellt, nie darüber.
opaque
Dieser Modus sollte verwendet werden, wenn per Javascript die Flashdatei bewegt werden soll.
Dieser Modus sorgt dafür das anderen Elemente die Flashdatei verdecken dürfen wie z.B. Menüs oder andere Elemente bei denen dies nötig ist.
transparent
Dieser Modus erlaubt es das Teile der Webseite oder andere Objecte durch scheinen.
Jedoch wird die Flash-Performance dadurch auch abnehmen, da dieses Darstellungsform sehr rechnerintensive ist.

Beschreibung der einzeln WMODE's

Anbei eine genauer Auflistung der WMODE's und auch ein wenig zu möglichen Fehler und Problemen in den verschieden Browser und Versionen.

window

Bei diesem Modus hat der Flashplayer in Windows sein eigenen hWnd (Fensterhandle). Das bedeutet, das dieses Fenster technisch gesehen unabhängig von Browser ist.
Das Fenster wird nur über das Browserfenster gelegt, dies bedeutet das Browserfenster und Flashplayer unabhängig von einander arbeiten können und somit wird hier die höchste Performance erreicht.
Der Nachteil hierbei ist, da es sich um ein eigenes Fenster handelt, gibt es keine Möglichkeit dies per hinter einen Seitenelement zu legen.
Dies ist meist der Grund warum Menüs oder andere Flashelemente hinter einer Flashdatei mit "window" dargestellt werden.
Default Einstellung falls kein Wert für WMODE angegeben wird.

opaque

Fensterloser Modus, hier hat der Flashplayer in Windows kein eigenen hWnd (Fensterhandle). Das bedeutet das der Browser dem Flashplayer mitteilt wo und wann er angezeigt werden soll.
Der Flashplayer ist also dann ein Teil der Seite und kann hinter und vor Elementen liegen, auch ist es möglich den Flashplayer durch Javascript zu verschieben, zu verstecken oder zu vergrößern und verkleinern.

Leider gibt es bei diesen Modus die meisten Verwirrungen, die meisten User gehen davon aus, das man mit diesen Modus nur Objecte hinter der Flashdatei darstellen kann, dies ist aber leider falsch.
Dadurch das dieses Flashelement bei diesem Modus ein teil des Browsers ist, kann hier ohne weiteres der z-index verwendet werden damit andere Elemente vor der Flashdatei erscheinen.
Somit ist es auch nicht zwingend erforderlich, für einen DHTML Layer den Modus transparent zu verwenden !

transparent

Bei diesem Modus blendet der Flash Player den Hintergrund von der Flashdatei aus indem er den Wert einen Alphawert von 0 zuweist.
Es kann also mit Hilfe dieses Modus der Eindruck einer runden Flashdatei erweckt werden, außerdem können andere interessante Effekte erzielt werden.

Bekannte Probleme mit WMODE transparent

Es gibt bei diesem Modus einige bekannte Probleme, welche hier ein wenig näher beschrieben werden.
Leider sind diese Probleme von Browser zu Browser und auch von Betriebssystem zu Betriebssystem verschieden.
Ein Test auf einen Browser bedeutet leider nicht das alle andere Browser genauso reagieren.
Die meisten Unterschiede findet man zwischen Internet Explorer 6.x und Firefox 2.x.

@ und € Zeichen und Formularfelder in Flash

In diesem Modus ist es nicht möglich ein @ oder € Zeichen in einem Flashformular über die Tastatur einzufügen, somit muss darauf geachtet werden das der User kein @, € oder andere Sonderzeichen mit der Tastatur eingeben muss.

Webseiten Links unterhalb der Flashdatei

Ein weiteres Problem ist, das Verweisse (Links) unterhalb der Flashdatei, in dem durchsichtigen Bereich teilweise nicht klickbar sind, da die Flashdatei sofort den Focus bekommt wenn hier drauf geklickt wird und nicht der Verweiss bzw. der Link.
Somit sollte man sich gut überlegen wo man eine solche Flashdatei platziert ohne das die Webseite nicht mehr bedienbar ist.

Webseiten Formulare unterhalb der Flashdatei

Bei den meisten Browsern werden Formulare die hinter einer Flashdatei liegen leider angezeigt, dies ist vor allem bei Selectboxen der Fall.
Selectboxen sollten also für die Dauert der Anzeige ausgeblendet werden, wenn diese unter einer Flashdatei liegen.

IFrames unterhalb der Flashdatei

Ein IFrame ist eines der höchsten Elemente einer Webseite, da dieses ein eine eigene Webseiten darstellt.
Aus diesem Grund ist es nicht möglich eine Flashdatei über ein IFrame zu legen, es ist nur möglich das Iframe für die Dauer der Anzeige der Flashdatei auszublenden.

Rechenintensive Darstellung

Dadurch das die Flashdatei transparent dargestellt wird, müssen hier der Browser und die Flashdatei sehr viel berechnen. Dies kann dazu führen das wenn die Flashdatei mehr als 50% Prozessorauslastung anzeigt, diese den Browser lahm legt.
Es sollte also immer in Erwägung gezogen werden ob der Modus "opaque" nicht besser geeignet ist.

Browser abhängige Darstellung

Es kommt vor allen in älteren Browser vor, das dieser Modus nicht einwandfrei funktioniert und Fehler in der Darstellung anzeigt, jedoch sollte heute niemand mehr mit älteren Browsern unterwegs sein.
Dies betrift so ziemlich alle Browser aus dem Jahr 2005 wie z.B: Opera 7.5 oder die damalige Netscape Version.

Beispiele

Anbei einige Beispiele der verschiedenen WMODES und deren Auswirkungen.

Wmode: window

Die Flashdatei wird in einem eigenen Fenster dargestellt, keine HTML Elemente lassen sich hier über die Flashdatei legen.

Wmode: opaque

Die Flashdatei wird im Browserfenster berechnet, andere HTML Elemente können über die Flashdatei liegen.

Wmode: transparent

Die Flashdatei wird transparent dargestellt, andere HTML Elemente werde bei durchsichtigen Bereich angezeigt.
Was hier auffällt das ich diese Animation langsamer dreht als die beiden anderen Animationen.

Überlagerungen von Flashdateien

Wenn mehrere Flashdateine zeitgleich auf einer Webseite angezeigt werden, kommt es schon mal vor, das mehrere Flashdateien übereinander liegen.
Um nun eine gewünschte Reihenfolge zu erhalten ist es wichtig das hier verstanden wird, das der Z-index eigentlich erstmal keine bedeutende Rolle spielt.

Es ist zu aller erst wichtig, das die Flashdateien den richtigen WMODE haben, die Flashdatei welche immer im Vordergrund angezeigt werden soll und nie verdeckt werden darf muss den WMODE "window" haben.
Eine Flashdatei die ruhig hinter anderen Flashelementen liegen darf, sollte den WMODE "transparent" haben und falls doch über den Z-Index die Flashdateien gesteuert werden sollen, so muss der WMODE "opaque" lauten.