wmode, bienvenido al infierno
[Actualización Septiembre 2008]
Como este post tiene bastantes visitas, quiero enlazar con un post reciente de Tinic Uro sobre los nuevos valores de wmode para el player 10: What does GPU acceleration mean?
Bastante información técnica sobre qué utiliza el player en cada plataforma para renderizar el contenido. Una perlita:
Just because the Flash Player is using the video card for rendering does not mean it will be faster. In the majority of cases your content will become slower.
[/Actualización Septiembre 2008]
Este post se va a dividir en 2 partes muy claras. La primera más técnica sobre qué es wmode, cómo funciona y por qué yo creo que no se debe utilizar. La segunda, es un poco el odio del día y viene causado por la reacción de algunos usuarios de FlashCoders a mi pregunta de si alguien sabía si Adobe estaba haciendo algo para solucionar el caos de wmode. Vamos con la parte técnica.
wmode, símplemente no vale la pena. Nunca.
wmode es un parámetro que se añade a las etiquetas <object> y <embed> al incluir una película Flash en una página HTML. Básicamente se utiliza para permitir que el fondo de dicha película sea transparente y se vea el HTML que hay “debajo”. No descubro nada, lleva bastante tiempo “funcionando”. Por lo visto lo que hace el player es delegar en el navegador el renderizado del objeto Flash. De esto me enteré el otro día en FlashCoders de mano de John Dowdell.
Lo que parece que la gente no acaba de saber es que utilizarlo es fuente de innumerables problemas. Los más comunes:
- Pérdida de rendimiento en general de la película. Símplemente va más lenta
- En teclados no ingleses, imposibilidad de utilizar algunos caracteres raros como la “@”, “ç” y algunos más
- En algunas versiones del player sobre Win/IE, el contenido se imprimía al revés, casi nada. (fuente John Dowdell, buscad aquí su primer comentario)
- Problemas con el orden de tabulación. Una vez establecido wmode, el orden de los tabIndexes se altera aleatoriamente
- Hay más, pillad unas palomitas y preguntadle a Google
Además, no parece posible predecir cuál o cuáles de estos problemas te van a tocar, lo cual facilitaría poner en la balanza pros y contras a la hora de utilizarlo. Pero como NO lo puedes saber, asume que te van a tocar todos.
¿Te parece suficiente para pedirle a Adobe que lo solucione? Bueno, pues por lo visto, a algunos no.
¿No te gusta Flash? Jódete y no lo utilices
Básicamente esta es la respuesta que obtuve al preguntar si Adobe estaba intentando solucionar este problema para la nueva versión del player. Todo empieza en este post de FlashCoders cuando un usuario pregunta cómo poner un película transparente encima de un objeto Windows Media Player. Alguien le sugiere wmode y yo le respondo que mejor que se lo piense dos veces antes de usarlo. A renglón seguido pregunto si Adobe está tratando de solucionarlo.
Muy amablemente John Dowdell responde diciendo que no es exclusivamente un problema de Adobe, si no de los navegadores. Yo le digo que vale, pero que es un problema enorme e insisto en que si van a hablar con alguien para que lo solucionen. En caso contrario, que por favor lo quiten, no funciona ni medio bien, ni siquiera en Win+IE. A los usuarios, jefes y desarrolladores se la suda por qué no funciona, y con razón. Lo que quieren es una aplicación útil y sin fallos, no una excusa del programador contándole no sé qué rollo sobre motores de renderizado. Al final de aquel mail además incluyo una breve a la par que ilustrativa anécdota que pasó hace bien poco al intentar alguien de mi empresa solucionar un problema de diseño con el wmode (lo cual puede explicar en parte mi tensez con este tema).
Bueno, pues a partir de ese momento, la guerra. Desde el que se da el lujazo de decir sin conocerme absolutamente de nada que mis jefes son unos ignorantes y que me debo a mi mismo un trabajo donde me aprecien, al que poco menos que me llama niño pequeño protestón, que Adobe no me va a hacer ni puto caso. Que si los de HTML y CSS están peor (¿y qué me importa que estén peor otros? , ¿soluciona eso mi problema?), que si las agencias de publicidad lo utilizan y así un ratito. El que quiera más carnaza que se lea FlashCoders.
AMOSNOMEJODAS. Ahora resulta que presionar (ya ves tú la presión brutal, están que no duermen) a Adobe para que arregle el player está mal. Menos mal que la propia Adobe no tiene ésa misma idea, si no estaríamos en tiempos de Flash 4. Total, para qué mejorar/solucionar problemas si hay gente que está peor.
Por suerte para mi, al final volvió a aparecer John Dowdell para decir que trataría de hablar internamente con la gente que lleva la relación con los navegadores y que tratarían de actualizar la documentación para dejar más claro los riesgos de utilizar wmode. Ya empezaba a sentirme imbécil.
En fin. Sólo pediros que si tenéis algún problema con el player u otra cosa, hay que dar el coñazo lo que nos dejen. El primer sitio (donde ya está reportado desde hace tiempo lo del wmode) es el formulario de bugs oficial. Luego, cualquier otro sitio está bien, nunca se sabe quién está leyendo. Por ejemplo, el post oficial preguntando mejoras para el player 10. Eso sí, preparaos porque os puede llover mierda.
October 19th, 2006 at 8:34 am
Otro problema (Menos conocido y más tecnico) de wmode es que, en Windows+IE parece usar intensivamente DirectX para renderear el alpha de transparencia. Es más o menos lo mismo que el truco de las transparencias alfa PNG32 en IE. Eso genera impredictibilidad al depender mucho del tipo de hardware del usuario, de si tiene activada aceleración por hardware y un largo etc. A la final arregla es problemas de diseño por lo que lo mejor (Mientras) es buscar soluciones alternativas para el fin.
June 7th, 2007 at 5:02 pm
Chapo.
No se si me alegro de esta explicación pues me ha pillado de lleno. Os comento que he realizado una video-conferencia mediante flash media server y me he encontrado con el problema que mi cliente flash cuando lo abres con Firefox (increiblemente con IE7 si funciona) en la parte de chat no te reconoce las teclas ENTER o caracteres especiales tipo @, ni incluso las interrogantes. Eso si, si quito el wmode va perfecto pero mas feo que un dolor porque el diseño se genera dinámicamente.
Bueno, solo daros las gracias y cruzaré los dedos con vosotros por que arreglen esto de una vez.
Un saludo
July 26th, 2007 at 12:56 am
Yo he tenido problemas con el wmode incluyendo swf dentro de divs con tamaños variables.
Aquí info sobre el problema: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523&sliceId=2
October 1st, 2007 at 10:49 pm
[...] Los posts más vistos han sido el de Flash en la PSP, el de Lo que yo sé de AS2, el infierno de wmode y el post que tiene el récord de visitas en un solo día: Cupertino, un lunes cualquiera. [...]
August 7th, 2008 at 6:09 pm
muchas gracias por contarnos de este problema :)) por fin dejó de salirme ese &#$%&&/ error
September 9th, 2008 at 4:27 pm
Una pregunta, yo lo úncio que quiero es mostrar una peli flash totalmetne decorativa *por debajo* de un contenido HTML. Dentro de la peli tengo funcionalidad cero… pero la penalización de rendimiento en cambio seguro que me afectaría.
Según la TechNote de Adobe que enalzas http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523&sliceId=2
“Using a WMODE value of ‘opaque’ or ‘transparent’ will prevent a Flash movie from playing in the topmost layer and allow you to adjust the layering of the movie within other layers of the HTML document.”
Para poder cambiar el z-index puedo utilizar transparent *y* opaque… en mi caso la segunda opción es válida, así que la pregunta es ¿wmode=opaque da los mismos problemas que wmode=transparent o es igual que estable que el valor por defecto wmode=window?
September 9th, 2008 at 4:56 pm
wmode=opaque es aun peor que transparent porque sólo va en IE, no en Macs ni Linux:
http://www.kaourantin.net/2008/05/what-does-gpu-acceleration-mean.html
“opaque: Somewhat esoteric, but it is essentially like transparent, i.e. it is using DirectDraw in Internet Explorer. But instead of compositing the Flash Player just overwrites whatever is in the background. ***This mode behaves like normal on OSX and Linux***.”
Siga jugando…
September 25th, 2008 at 12:06 am
simplemente no puedo con el wmode, no no no no me funciona…. y mi cliente quiere flash…….
September 29th, 2008 at 1:40 pm
Me he vuelto loca pensando porque no marcaba el “@” en firefox pero en explorer si… aquí encontré mi respuesta, pero no la solución.. La página debe estar hecha en Flash, es el mismo caso que Saheka, mi cliente quiere Flash, y es necesario el wmode=transparent, ya que tengo transparencias… cómo puede ser que no exista una solución???!! Voy a seguir buscando, si la encuentro les comento, y si alguien la encuentra: POR FAVOR COMPARTAN!! Gracias… ;)
September 29th, 2008 at 1:50 pm
@Saheka y Cecilia: No tiene solución a día de hoy, es triste pero cierto. Es por eso que NO se deben aceptar diseños que fuercen a utilizar wmode.
Mi única esperanza es que lo hayan solucionado en el player 10, pero aun no me he bajado la beta para probarlo.
Ánimo.
September 29th, 2008 at 2:23 pm
es una verdadera lástima… no poder expandirse tanto en la parte estética es un limitación muy triste… esperemos que pronto aparezcan soluciones que nos dejen conformes… Gracias por responderme tan rápido Zárate!!
December 23rd, 2008 at 2:27 pm
[...] (esta es nueva, nunca lo había visto) y alguna cosa rara más. No pude evitar acordarme de este post de Zárate :)Por suerte para nosotros, tras documentar todo lo que estaba pasando, el cliente [...]
May 19th, 2009 at 3:43 am
Hola a todos, aunque no sé si sirve para todos los casos, a mí me dió muy buen resultado incluir System.useCodepage = true; en el primer frame del _root y en otros casos embeber los caracteres “raros” en forma manual. Aunque un problema que si tengo es que al tner la peli transparente se interrumpe el scroll de la página con la rueda del mouse. ej. http://www.dascabinet.com.ar . Si alguien tiene solución para esto, se agradece. Saludos !
July 30th, 2009 at 8:50 pm
A mi me pasa lo siguiente… en IE y en Firefox y sus secuaces me sale visualmente la transparencia correctamente… puedo ver los objetos html que esten por debajo de la pelicula… peroooo…. si tengo un hiperenlace debajo de esa pelicula…no sirve… por fin IE le gana una a Firefox… me toco entrar a programar hechizos para que carge 2 diferentes flash….ojala que solucionen ese bug..!
September 2nd, 2009 at 12:02 pm
Tengo un sitio que tiene banners en flash. Son muy simples. Solo tienen un boton que cambia la imagen en rollover. El tema es que a veces, cuando sale de pantalla y la mayoria de las veces que carga, tenés que hacerle un click para que empieze a funcionar el rollover. Para que funcione bien le tengo que poner WINDOW en el WMODE, pero tengo un lightbox, que queda abajo de los botones. Asi que estoy atrapado sin salida, y no puedo usar imagenes en vez del swf. :\
Saludos
September 21st, 2009 at 5:41 pm
[...] Wmode, Bienvenido al Infierno [...]