views:

456

answers:

3

I've been given a site layout and a flash navigation to incorporate which requires transparency. However, using wmode='transparent' the results are highly inconsistent across browsers using the latest Flash 10.

In IE7 the sample page works perfectly fine. In FireFox3 (Win) the colors are incorrect in the flash. In Safari/FF3 (Mac) the Flash is not transparent at all.

I can use z-index to send it behind everything for the same effect, but then the divs on top do not allow the menu to be clicked.

I made a test page to demonstrate: http://quietmind.biofeedback.net/test/so.html

A: 

wmode has been a pain in the ass as far as I can remember. Has never worked correctly crossbrowser although I have to admit I haven't run the test in FP10.

Known issues with wmode transparent have been:

  • Entering "@" sign in non- English keyboards.
  • Tab Index craziness.
  • Overall lost of performance.
  • Printing problems (for example here).
  • Ask Google and help yourself.

So, no, it's not reliable. Actually, for me any design that requires wmode is just not a valid design.

You can read more about wmode internals at What does GPU acceleration mean?.

Good luck.

Juan

Zárate
A: 

Setting wmode to transparent can cause some strange problems, but this one is new to me. I would suspect that you're doing something a bit odd with the transparency in the swf itself which causes the plugin to mess up the calculations. Start by looking into that. However, try to avoid wmode transparent if possible, it's a performance hog at best and can cause a whole bunch of strange behaviours (although the messed up colors can likely be avoided)

grapefrukt
A: 

Both of the answers were helpful, but as it turns out the original SWF had a jpg for one of the images. For some reason the Windows implementation of Flash handled this just fine, but the Mac version didn't attempt to make it transparent.

There's still the issue of Windows FF3 mangling the colors on Flash with transparent set though, but that's a separate issue.

Ben