Pergunta

Eu tenho div contendo uma lista de objetos flash. A lista é longa assim que eu definir a altura div a 400 e transbordamento para auto.

Esta multa trabalha no FF, mas no IE6 apenas os primeiros 5 objetos flash que são trabalho visível. O resto dos objetos flash que são inicialmente fora da área visível são vazias quando eu rolar para baixo. Os fundos soberanos são carregados ok porque eu não obter o "filme não carregado". Eles também parecem ser incorporado corretamente eles estão apenas esvaziar ie. o conteúdo nunca é desenhada.

Algumas ideias sobre como consertar isso?

ps. Os elementos html envolvidos estão flutuando principalmente no caso que tem um impacto sobre isso. Os objetos flash estão embutidos usando o SWFObject popular.

EDIT: Parece que o bug só ocorre com o plugin do flash "WIN 8,0,24,0"

Uma vez que eu não posso postar um link Vou resumir o código relevante aqui:

<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>

EDIT: Depois de tentar recriar este problema em uma página separada, descobri que o erro é de alguma forma relacionado com o flash objetos sendo escondidos inicialmente. Meu recipiente div tem "display: none; visibility: hidden" quando a página é carregada. Mais tarde, o estilo é alterado via javascript para visível. Se eu carregar a página para que tudo é visível desde o início, tudo está bem.

Foi útil?

Solução 4

Eu acho que tenho uma solução para isso. Eu não posso ter certeza absoluta de que a página em questão foi reestruturada (por causa deste bug). Mais tarde, me deparei com um problema semelhante com o mesmo componente de flash em uma página diferente.

A questão não era que, às vezes de flash dá uma Stage.height = 0 e Stage.width = 0. Esta é mais provável de acontecer quando o flash é iniciado fora da janela do navegador. Estamos a utilizar as dimensões do palco para dimensionar o conteúdo (em largura e altura = 0 = 0, neste caso).

A solução foi adicionar um manipulador onEnterFrame que verifica a existência de dimensões do palco e apenas procede uma vez que estão> 0.

Outras dicas

Quando eu estou testando este tipo de material no IE6, a primeira coisa que faço é começar a remover informações de estilo. Comece removendo todos os carros alegóricos e limpa tanto do DIV pai e DIVs crianças. Se isso não funcionar, remova todo o preenchimento e margens, e dar o pai DIV e crianças DIVs cada uma largura de 100% (deixando em sua altura de 100px). Se isso não funcionar, em seguida, enviar de volta aqui. Se eu tivesse que arriscar um palpite, eu diria que é porque nenhum dos seus DIVs têm uma largura, mas isso é um palpite baseado no que eu sei do "bug peekaboo".

Algumas coisas que eu iria tentar:

  • remover todas CSS temporariamente para determinar se o problema é específico do CSS
  • larguras de pixel adicionar aos elementos flutuantes, bem como seu elemento pai
  • adicione o param transparente wmode para swfobject
  • Posição add: relative

Já ouvi falar de um bug no Flash que aparentemente só ocorre se as cargas flash com porções dela fora da tela (ou seja body> #flash {margin-top: -50px}). Seu problema poderia ser potencialmente uma variação disso.

Como alternativa, você pode soltar a div com overflow completamente e tente criar um recipiente em flash com uma barra de rolagem e carregar os SWFs individuais em que arquivo flash um recipiente.

Esta é apenas uma solução alternativa, mas você poderia tentar criar espaços reservados inicialmente para objetos Flash (como div Com a altura ea largura correspondente) e só carregar o filme (via algo como swfobject ) quando se torna visível pela primeira vez. Isto pode criar alguns problemas (ou seja, os filmes não pré-carregamento antes que eles são visíveis), mas pode ser aceitável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top