Solución al problema de z-index y objetos SWF

Después de tanto buscar, buscar y buscar.. Probar, probar y probar eh llegado a una conclusión que me permitirá saber por donde empezar a solucionar este problema en futuros proyectos y creo que este post será solución para muchos.

solucion-al-problema-de-zindex-y-objetos-swf

Un objeto SWF incrustado en nuestro HTML es leído o interpretado por nuestro navegador y automáticamente se le asigna un valor superior de “z-index”, si bien para muchos esto no presenta ningún problema, a la hora de manipular etiquetas div’s y realizar alguna que otra estructura compleja esto puede convertirse en un verdadero dolor de cabeza (lo eh vivido en carne propia).

Bien las opciones que e visto por ahí son:

- Modificar mediante CSS las propiedades z-index de la etiqueta div que contenga el objeto SWF.

  1. #Mi_Etiqueta_Div{
  2.  z-index:100;
  3. }

- Modificar las propiedades z-index de la etiqueta object.

  1. object{
  2.  z-index:-1;
  3. }

- Y/O agregar la propiedad WMODE al objeto SWF.

  1.  <param name="wmode" value="transparent" />

Todas funcionan pero solo si se las aplica de forma correcta…

Eh notado que cuando insertamos un objeto desde Dreamweaver 8 en adelante el script asignado a dicho objeto es diferente ya que utiliza javascript como complemento.

  1. <script type="text/javascript">
  2.  AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','100','height','100','title','archivo’,'src','archivo','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','archivo' ); //end AC code
  3. </script>
  4. <noscript>
  5.  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100" height="100" title="archivo">
  6.   <param name="movie" value="archivo.swf" />
  7.   <param name="quality" value="high" />
  8.   <embed src="archivo.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100" height="100"></embed>
  9.  </object>
  10. </noscript>

Luego de dar vueltas y vueltas mirando el código HTML de uno de mis proyectos eh notado que al incrustar el objeto “a la antigua” (versiones anteriores a Dreamweaver 8) es posible solucionar este inconveniente.

  1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100" height="100" title="archivo">-
  2.  <param name="movie" value="archivo.swf" />
  3.  <param name="quality" value="high" />
  4.  <embed src="archivo.swf" quality="high" width="100" height="100" name="archivo" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
  5. </object>

Pero para resumir, cuales serian los pasos:

1. Incrustar el objeto SWF utilizando el método antiguo

  1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100" height="100" title="archivo">
  2.  <param name="movie" value="archivo.swf" />
  3.  <param name="quality" value="high" />
  4.  <embed src="archivo.swf" quality="high" width="100" height="100" name="archivo" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
  5. </object>

2. Aplicar la propiedad WMODE al objeto

  1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="100" height="100" title="archivo">
  2.  <param name="movie" value="archivo.swf" />
  3.  <param name="quality" value="high" />
  4.  <param name="wmode" value="transparent" />
  5.  <embed src="archivo.swf" wmode="transparent" quality="high" width="100" height="100" name="archivo" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
  6. </object>

3. Y si es necesario modificar los valores de z-index del objeto y las etiquetas div que sean necesarias.

  1. #Mi_Etiqueta_Div{
  2.  z-index:100;
  3. }
  4.  
  5. object{
  6.  z-index:-1;
  7. }

Con esto es suficiente para solucionar el inconveniente. Cualquier duda puedes hacerla en los comentarios de este Post.

Discuss: “Solución al problema de z-index y objetos SWF”

  1. 30 diciembre 2011 at 16:38 #

    muchas gracias, me ayudó mucho el wmode=”transparent”

    Posted by daniel

Deja un comentario

Quiero recibir una notificación cuando alguien publique un comentario en este artículo. (Podes suscribirte sin comentar