ugrás a tartalomhoz

Miért nincs hatással a Flash mozira a z-index?

Török Gábor · 2006. Nov. 15. (Sze), 23.15
Már a Weblabor fórumján is sokszor felvetődött a kérdés, hogy a stíluslappal pozicionált abszolút rétegeket miért takarják ki a Flash mozik, látszólag a z-index egyáltalán nincs rájuk hatással. A kifogásolt viselkedés abból fakad, hogy a Flash bővítmény teszi rá utólag a Flash mozit az oldalra, így az független lesz annak HTML/CSS szerkezetétől.

A Macromedia hivatalos állásfoglalásában erről tájékoztatja is a webfejlesztőket:
A Flash movie in a layer on a DHTML page containing several layers may display above all the layers, regardless of the stacking order ("z-index") of those layers.
Azonban ne csüggedjünk, kínálnak rá megoldást, mégpedig a wmode attribútum segítségével.

<object type="application/x-shockwave-flash" data="mozi.swf">
<param name="movie" value="mozi.swf" />
<param name="wmode" value="transparent" />
</object>
A transparent opcióval elérhető a kívánt hatás, használhatóvá válik a z-index. (Tipp: az <embed> elem deprecated, ne használjuk!) Azonban a történet még nem teljes, ugyanis a Linux nem támogatott platform – egyelőre. Emulációs rétegen (pl. Wine) futtatott böngészők alatt természetesen helyesen jelenítik meg.

A problémát Veerle Pieters Experimenting with Flash content and z-index c. bejegyzésében példákkal is illusztrálja.
 
1

Mellékhatások

Jano · 2006. Nov. 16. (Cs), 00.44
Nem tudom mi adta az ötletet, hogy megírd, de akár a fórum FAQ első bejegyzésének is tekinthetjük :). Egészítsük ki még annyival, hogy úgy tűnik van azért pár mellékhatása (lassúlás, egéresemény kezelés) a transparent wmode használatának az egyik topik szerint: Flash transparent dinamikus váltása

Vagy az itt leírt:
Firefox wmode=transparent is completely screwy and breaks textfields
elrontja a karakter bevitelt Firefox alatt. Pl. Nem tudtam magyar billentyű kiosztás mellett 1.5.0.9-es Firefoxon kukacot írni (altgr + v)
2

Google Video?

attlad · 2006. Nov. 16. (Cs), 01.25
Google Video-n mégis úgy néz ki megoldották, nem? Videólejátszás közben használható a felette levő lenyíló menü Linux-on is.
3

Firefox es Flash verziod?

Jano · 2006. Nov. 16. (Cs), 09.33
Lehet, hogy azota megoldottak, mi a Firefox es Flash verziod?
7

Nem amiatt

attlad · 2006. Nov. 16. (Cs), 15.17
Csak Google Video-n ok a dolog.
4

Illusztráció

Török Gábor · 2006. Nov. 16. (Cs), 12.35
Gyorsan készítettem egy demot a probléma illusztrálására. Nálam Firefox (2), Opera, Konqueror böngészőkben mindig legfelül van a Flash. Wine/IE-ben a helyes működést tapasztalom.

A Google Video-n valóban fölötte van a réteg, meg kell vizsgálni, hogy miért. (:
5

wmode opaque?

amonrpg · 2006. Nov. 16. (Cs), 13.24
http://www.communitymx.com/content/source/E5141/wmodeopaque.htm

Egy másik tesztoldal, imho érdemes megnézni. Bár nekem nincs a kezem ügyében linux, hogy azon is teszteljem... :)
6

Mögötte

Török Gábor · 2006. Nov. 16. (Cs), 14.04
Detto.
9

Böngészők viselkedése Mac OS X alatt

Cirby · 2006. Nov. 25. (Szo), 01.09
Böngészők viselkedése ebben a tesztben Mac OS X alatt:
Camino (1.0.3) - Jó
Firefox (2.0) - Jó
Mozilla (1.7.13) - Jó
MS IE (5.2.3) - !!!
Netscape (7.2) - Jó
Omniweb (5.5.1) - Jó
Opera (9.02) - Rossz (de Transparent módban jó!)
Safari (2.0.4) - Jó
11

Ahogy a nagy könyvben megvan írva

Török Gábor · 2006. Dec. 1. (P), 16.18
Ez nem olyan meglepő, lévén ugyanez szerepel a - blogbejegyzésben is linkelt - hivatalos állásfoglalásban.

The following browsers currently support windowless mode:
Windows and Mac OS X

Internet Explorer 3 or higher (Windows)
Internet Explorer 5.1* and 5.2* (Macintosh)
Netscape 7.0*
Mozilla 1.0 or higher*
AOL*
CompuServe*
14

Miért törölted?

Cirby · 2006. Dec. 3. (V), 01.52
Miért kellett törölni a másik hozzászólásomat? Abban pont más eredményeket mutatott az IE for Mac és az Opera!!! (Mindkét tesztet külön-külön futtattam és azokhoz a hozzászólásokhoz csatoltam, amelyikhez valóak. Máskor tessék jobban odafigyelni a törlésre!)
Tehát nem (csak) a böngészőkben van a hiba, hanem a kódolástól is függ, hogy mit és hogyan jelenítenek meg!
8

Teszteredmény

attlad · 2006. Nov. 16. (Cs), 15.21
Linux Firefox, Opera: felül van a Flash
Windows IE6, IE7, FF: 1. felül a Flash 2. alul a Flash

Viszont ami érdekes hogy nálam Konqueror-ban (3.5.5) mind a két esetben a Flash van alul. Tehát egyetlen böngésző az említettek közül amiben wmode nélkül is ok.
10

Megvan a megoldás!!!! Heuréka!

Wallner · 2006. Dec. 1. (P), 15.33
Köszi a Google Video ötletet! Visszafejtettem, hogy hogyan oldották meg. Már működik egy teszt oldalamon.

A probléma Linuxon az, hogy a flasht nem a böngésző rajzolja ki, hanem a plugin nyit egy új X ablakot a Mozilla fölé és abba rajzolja ki a flasht. Emiatt a flash mindig a Mozilla által generált tartalom felett lesz.

A Google féle megoldásban azt használják ki, hogy az IFrame-t ugyanígy kezeli a Mozilla. Csak nem flash plugint tesz bele, hanem mégegy Mozillát. Tehát, ha IFrame-be tesszük azt a tartalmat, amit szeretnénk megjeleníteni a Flash felett, akkor meg fog jelenni.

A dolog azért nem ilyen egyszerű, mert ha az oldal betöltésekor már ott az IFrame, akkor a flash mindenképp takarni fogja. A megoldás az, hogy JavaScript-tel rajzoljuk ki az IFrame-et amikor a flash már betöltődött.

A Google erre írt egy JavaScript-et, ami az alap DHTML div-ből kiszedi a tartalmat és kicseréli egy rejtett (display: none) IFrame-re. A méreteket és a pozíciót is átviszi az IFramre. Ezután megjeleníti (display: block). És láss csodát a menü a flash fölött van.

Amin gondolkozom, hogy erre lehetne írni egy automatikus kiterjesztést a Firefoxhoz. Ugyanis a legtöbb oldal nem foglalkozik a Linuxszal (Pl ATI, NVidia...) és szarok a menük...

Már megint a Google viszi a pálmát. Ez a világ legjobb és legfelkészültebb számítástechnikai cége! Mindent megoldanak. Náluk minden megy Linux alatt, Mac alatt is. Még az is, amit senki más nem tud megoldani. Óriási elismerésem nekik. Másik ilyen csoda projectjük az AJAX alapú GoogleMap...

Remélem segítettem, üdv mindenkinek!
12

Működik

Török Gábor · 2006. Dec. 1. (P), 17.29
Jó, vagy talán úgy fogalmaznék, hogy valóban működő megoldás (Linux alatt Firefox és Opera böngészőkben teszteltem). iframe helyett én javasolnám viszont az object használatát, ahogy erről nem régiben volt egy blogmark is.

Bővítettem a korábban linkelt demót ezzel a megoldással.
13

Object

Wallner · 2006. Dec. 2. (Szo), 14.27
Nincs iframe az XHTML-ben? Én szoktam használni...

Az Object is így viselkedik, hiszen a flash is egy object. Szóval az is jó, ha meg szeretnél jeleníteni tartalmat a flash fölött.

A Google azért használt iframe-t, mert annak a tartalmát tudod Javascript-ből módosítani. Az általad linkelt blogban nem láttam erre megoldást.
A Google féle megoldásban az a szép, hogy minden a hagyományos módon megy, csak írtak egy scriptet, ami Linuxon kicseréli a div-et az iframe-re.
15

valami változás így másfél év után?

gex · 2008. Júl. 8. (K), 11.15
tud valaki valami változásról linux fronton?
16

Flash Player 10 béta 2 + friss böngésző

attlad · 2008. Júl. 29. (K), 13.59
Tudtommal ha legalább Flash Player 10 béta 2 verziót és 2008. júl. 8-a után kiadott Firefox 3-at használsz (jelenleg csak nightly van ilyen) ill. Opera 9.5 vagy afölötti verzió esetén már ok.
17

én opaque -val oldottam meg.

Matyi Gábor · 2008. Júl. 29. (K), 16.04
<param name="wmode" value="opaque" />

és ha jól dereng, Linux alatt is muxik...
18

Linux alatt nem

Török Gábor · 2008. Júl. 29. (K), 16.56
Linux alatt nem. (Legalábbis 9-es Flash-sel, és nem IE alatt.)
19

Flash 10, Firefox 3

Török Gábor · 2009. Jan. 7. (Sze), 16.43
Firefox 3 Flash 10-zel immáron az elvárt viselkedést tanúsítja.