Question

J'ai div contenant une liste d'objets flash. La liste est longue, j'ai donc réglé la hauteur de la div à 400 et le débordement à auto.

Cela fonctionne très bien sur FF, mais sur IE6, seuls les 5 premiers objets Flash visibles fonctionnent. Le reste des objets flash qui se trouvent initialement en dehors de la zone d'affichage sont vides lorsque je fais défiler l'écran. Les swfs sont chargés car je ne reçois pas le "film non chargé". Ils semblent aussi être correctement intégrés, c’est-à-dire qu'ils sont vides. le contenu n'est jamais dessiné.

Avez-vous des idées pour résoudre ce problème?

ps. Les éléments html impliqués sont principalement flottants au cas où cela aurait un impact. Les objets Flash sont incorporés à l’aide du célèbre swfObject.

EDIT: Il semble que le bogue ne se produise qu'avec le plugin flash "WIN 8,0,24,0".

Comme je ne peux pas poster de lien, je vais résumer le code correspondant ici:

<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: Après avoir essayé de recréer ce problème dans une page séparée, j’ai trouvé que le bogue est en quelque sorte lié aux objets flash cachés au départ. Mon conteneur div a " affichage: aucun; visibilité: masqué " quand la page est chargée. Plus tard, le style est modifié via javascript en visible. Si je charge la page pour que tout soit visible depuis le début, tout va bien.

Était-ce utile?

La solution 4

Je pense avoir une solution à cela. Je ne peux pas être absolument sûr car la page en question a été restructurée (à cause de ce bug). Plus tard, je suis tombé sur un problème similaire avec le même composant flash sur une page différente.

Le problème était que Flash donnait parfois un Stage.height = 0 et un Stage.width = 0. Cela est le plus susceptible de se produire lorsque le flash est lancé en dehors de la fenêtre de visualisation du navigateur. Nous utilisons les dimensions de la scène pour redimensionner le contenu (largeur = 0 et hauteur = 0 dans ce cas).

La solution consistait à ajouter un gestionnaire onEnterFrame qui vérifie les dimensions de la scène et continue uniquement une fois qu'elles sont > 0.

Autres conseils

Lorsque je teste ce genre de choses dans IE6, la première chose à faire est de commencer par supprimer les informations de style. Commencez par supprimer tous les objets flottants et effacés de la division parent et de la division enfants. Si cela ne fonctionne pas, supprimez tout le rembourrage et les marges et attribuez à la DIV parent et aux DIV enfants une largeur de 100% (en laissant une hauteur de 100px). Si cela ne fonctionne pas, alors postez ici. Si je devais tenter ma chance, je dirais que c’est parce qu’aucune de vos DIV n’a de largeur, mais c’est une supposition sauvage basée sur ce que je sais du "bogue peekaboo".

Quelques choses que j'essaierais:

  • supprime temporairement tous les CSS pour déterminer si le problème est spécifique à CSS
  • ajouter des largeurs de pixels aux éléments flottants ainsi qu'à leur élément parent
  • ajoutez le paramètre transparent wmode à swfobject
  • ajouter une position: relative

J'ai entendu parler d'un bogue dans Flash qui ne se produit apparemment que si le flash est chargé avec des parties en dehors de l'écran (c'est-à-dire le corps > #flash {margin-top: -50px}). Votre problème pourrait être une variante de cela.

Vous pouvez également supprimer le div avec le dépassement de capacité et essayer de créer un conteneur en flash avec une barre de défilement et charger les fichiers SWF individuels dans ce fichier flash de conteneur.

Ceci est juste une solution de contournement, mais vous pouvez essayer de créer des espaces réservés initialement pour les objets Flash (comme les div avec la hauteur et la largeur correspondantes) et ne charger que le film (via quelque chose comme swfobject ) lorsqu'il devient visible pour la première fois. Cela peut créer certains problèmes (par exemple, les films ne préchargent pas avant qu’ils ne soient visibles), mais cela peut être acceptable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top