Pregunta

Tengo un swf que requiere flash 9, y estoy tratando de mostrar contenido sobre él. Para facilitar esto, he configurado wmode en transparente. El problema es que esto SOLO funciona cuando el usuario tiene instalado Flash 10, y realmente no quiero requerir Flash 10 para ver el contenido en el sitio en el que estoy trabajando. Cuando levanto un div sobre el contenido flash con flash 9, el swf sangra o sobrescribe completamente el div.

¿Cómo puedo evitar esto sin hacer que Flash 10 sea un requisito del usuario?

Estoy usando swfobject para incrustar el swf y jquery-ui para mostrar divs sobre el contenido flash.

EDITAR:

Este comportamiento de falla solo se observa en Safari.

¿Fue útil?

Solución

No estoy seguro de si esto te ayudará per se. Pero he usado el siguiente método para mostrar contenido en flash.

Me enfrenté a este problema hace algún tiempo. Debía mostrarle al usuario una ventana emergente de Términos y condiciones para el registro en un sitio. La ventana emergente estaba bien, pero había una película flash en la parte superior de la página que ocultaba la parte superior del cuadro de diálogo. El método probado y ampliamente utilizado es colocar un Iframe en el lugar donde desea mostrar su contenido y posicionarlo de manera absoluta. Por ejemplo, si desea mostrar un div encima de una película flash, coloque un IFrame como sigue:

    <iframe style="position:absolute;top:250;left:150;"></iframe>

Luego coloque el div exactamente encima de este iframe como:

    <div style="position:absolute;top:250;left:150;"></div>

Estaba usando jquery en la página para mostrar el diálogo usando el complemento ui.dialog. Después de perder el tiempo alguna vez ideé la siguiente solución simple.

1) coloque el atributo id en el elemento de la película para identificar de forma exclusiva el objeto de la película. Me gusta,

<object id="movie1"></object>

2) antes de mostrar el cuadro de diálogo (u otro contenido) llame a una función de JavaScript para ocultar la película. Me gusta,

$("#movie1").css("display","none");

3) ahora muestra el diálogo. Me gusta,

$("#dialog").dialog("open");

4) después de cerrar el diálogo, muestre la película nuevamente. Me gusta,

  $("#dialog").dialog("close");
  $("#movie1").css("display","inline"); 

Otros consejos

wmode transparent ha sido parte de Flash durante años y no está restringido a Flash Player 10.

independientemente, no necesita usar wmode transparent; a menos que realmente necesite transparencia en su SWF, debe usar wmode opaco en su lugar. tiene menos errores y usa menos potencia de procesamiento.

el truco es asegurarse también de que sus elementos HTML tengan una 'posición' establecida en el CSS.

intente seguir los ejemplos e instrucciones aquí: http://learnswfobject.com/advanced-topics / colocar-html-elements-over-a-flash-movie /

No puedo ofrecer consejos que puedan resolver el problema, por lo que te sugiero que, en su lugar, quieras evitar el problema.

En lugar de tener el contenido (x) html sobre el contenido flash en el índice z

+------------+
|            |
| +-------------+
| |   html      |
| |             |
| +-------------+
|   Flash    |
+------------+

¿Qué tal si en lugar de colocar el contenido (x) html sobre Flash en la ventana:

+------------+
|  html      |
|            |
+------------+
+------------+
|            |
| Flash      |
|            |
|            |
|            |
|            |
+------------+

No es ideal, pero al menos ofrece una solución viable hasta que Flash / html pueda coexistir con más éxito.

Encontré esto en mis marcadores (y son de la era anterior a 10). Aunque no tengo ningún Flash Player 9 / Safari aquí para validar esto en este momento. Dale una oportunidad.

Diferentes modos de W para navegadores

Como dijeron pipwerks, WMode debería controlar esto, pero no todas las plataformas / navegadores los manejan correctamente. En ese caso, consideraría que esto es un error de Safari / Flash9 y no se puede corregir.

intente configurar el parámetro wmode en opaco. Eso parece resolver muchos problemas de capa / profundidad HTML cuando Flash está involucrado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top