Pregunta

Tengo div que contiene una lista de objetos flash. La lista es larga, así que configuré la altura div a 400 y desborde a auto.

Esto funciona bien en FF pero en IE6 solo funcionan los primeros 5 objetos flash que son visibles. El resto de los objetos flash que inicialmente están fuera del área visible están vacíos cuando me desplazo hacia abajo. Los swfs se cargan bien porque no obtengo la "película no cargada". También parecen estar incrustados correctamente, simplemente están vacíos, es decir. el contenido nunca se dibuja.

¿Alguna idea sobre cómo solucionar esto?

ps. Los elementos html involucrados son principalmente flotantes en caso de que tenga un impacto en esto. Los objetos flash se incrustan utilizando el popular swfObject.

EDITAR: Parece que el error solo se produce con el complemento de flash " WIN 8,0,24,0 "

Como no puedo publicar un enlace, resumiré el código relevante aquí:

<div style="overflow:auto; height:400px; float:left;">
<div id="item_1" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
...
<div id="item_7" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
</div>

EDITAR: Después de intentar recrear este problema en una página separada, descubrí que el error está relacionado con los objetos flash que se ocultan inicialmente. Mi contenedor div tiene " mostrar: ninguno; visibilidad: oculta " cuando se carga la página. Más tarde, el estilo se cambia a través de javascript a visible. Si cargo la página para que todo esté visible desde el principio, todo está bien.

¿Fue útil?

Solución 4

Creo que tengo una solución para esto. No puedo estar absolutamente seguro ya que la página en cuestión fue reestructurada (debido a este error). Más tarde me topé con un problema similar con el mismo componente flash en una página diferente.

El problema era que a veces el flash proporciona Stage.height = 0 y Stage.width = 0. Es más probable que esto suceda cuando el flash se inicia fuera de la ventana gráfica del navegador. Estamos utilizando las dimensiones del escenario para escalar los contenidos (ancho = 0 y alto = 0 en este caso).

La solución fue agregar un controlador onEnterFrame que verifique las dimensiones del escenario y solo proceda una vez que estén > 0.

Otros consejos

Cuando estoy probando este tipo de cosas en IE6, lo primero que hago es comenzar a eliminar la información de estilo. Comience por eliminar todos los flotadores y borrados tanto del DIV principal como de los DIV secundarios. Si eso no funciona, elimine todo el relleno y los márgenes, y otorgue a los DIV principales y a los DIV secundarios cada uno un ancho del 100% (dejando una altura de 100 px). Si eso no funciona, publique de nuevo aquí. Si tuviera que adivinar una suposición, diría que es porque ninguno de tus DIV tiene un ancho, pero es una suposición descabellada basada en lo que sé del " peekaboo bug " ;.

Algunas cosas que probaría:

  • elimine todos los CSS temporalmente para determinar si el problema es específico de CSS
  • agregue anchos de píxeles a los elementos flotantes, así como a su elemento padre
  • agregue el parámetro transparente wmode a swfobject
  • agregar posición: relativo

He oído hablar de un error en Flash que aparentemente solo ocurre si el flash se carga con partes de él fuera de la pantalla (es decir, cuerpo > #flash {margin-top: -50px}). Su problema podría ser una variación de eso.

Alternativamente, podría soltar el div con desbordamiento por completo e intentar crear un contenedor en flash con una barra de desplazamiento y cargar los SWF individuales en ese archivo flash de contenedor.

Esto es solo una solución alternativa, pero podría intentar crear marcadores de posición inicialmente para los objetos de Flash (como div's con la altura y el ancho correspondientes) y solo cargar la película (a través de algo como swfobject ) cuando se hace visible por primera vez. Esto puede crear algunos problemas (es decir, las películas no se cargan previamente antes de que sean visibles), pero puede ser aceptable.

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