Frage

Ich habe div eine Liste von Flash-Objekten. Die Liste ist lang, damit ich die div Höhe bis 400 und Überlauf auf Auto festgelegt haben.

Dies funktioniert gut auf FF aber auf IE6 nur die ersten 5 Flash-Objekte, die sichtbar Arbeit sind. Der Rest der Flash-Objekte, die zunächst außerhalb des sichtbaren Bereichs sind leer, wenn ich nach unten scrollen. Die SWF-Dateien geladen sind ok, weil ich den „Film nicht geladen“ nicht bekommen. Sie scheinen auch richtig eingebettet werden sie nur leer, dh. der Inhalt wird nie gezogen.

Alle Ideen, wie dieses Problem beheben?

ps. Die HTML-Elemente beteiligt sind, hauptsächlich in schwimmenden Fall, die einen Einfluss auf diese hat. Die Flash-Objekte eingebettet sind die beliebte SWFObject.

EDIT: Es scheint, dass der Fehler nur mit der Flash-Plugin "WIN 8,0,24,0"

tritt auf

Da kann ich nicht einen Link ich hier den entsprechenden Code zusammenfassen werden:

<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: Nach dem Versuch, dieses Problem in einer anderen Seite zu erstellen, fand ich, dass der Fehler auf die Flash-Objekte werden versteckt zunächst einige, wie verwandt ist. Mein div-Container hat "display: none; visibility: hidden", wenn Seite geladen wird. Später Stil wird über Javascript sichtbar verändert. Wenn ich die Seite laden, so dass alles, was sichtbar ist, von Anfang an alles in Ordnung ist.

War es hilfreich?

Lösung 4

Ich denke, dass ich eine Lösung für dieses. Ich kann nicht absolut sicher sein, wie die betreffende Seite umstrukturiert wurde (wegen dieses Fehlers). Später stieß ich auf ein ähnliches Problem mit dem gleichen Flash-Komponente auf einer anderen Seite.

Das Problem war, dass manchmal Blitz ein Stage.height gibt = 0 und Stage.width = 0. Dies ist wahrscheinlich passieren, wenn der Blitz außerhalb des Browsers Ansichtsfenster initiiert wird. Wir nutzen die Bühnengröße um den Inhalt zu skalieren (bis width = 0 und height = 0 in diesem Fall).

Die Lösung war eine onEnterFrame Handler hinzuzufügen, die für die Stufe Dimensionen überprüft und nur geht, wenn sie> 0 sind.

Andere Tipps

Wenn ich diese Art von Sachen zu testen bin in IE6, das erste, was ich tue, ist beginnen Stilinformationen zu entfernen. Beginnen Sie damit, alle Schwimmer entfernen und löscht sowohl aus dem übergeordneten DIV und Kinder DIVs. Wenn das nicht funktioniert, entfernen Sie alle Polsterung und Margen, und gibt den Eltern DIV und Kinder DIVs jeweils eine Breite von 100% (in der Höhe von 100px zu verlassen). Wenn das nicht funktioniert, dann schreiben Sie hier zurück. Wenn ich eine Vermutung zu wagen hätte, würde ich sagen, es liegt daran, dass keiner Ihrer DIVs eine Breite haben, aber das ist eine wilde Vermutung basiert auf dem, was ich weiß, der „peekaboo Bug“.

Ein paar Dinge, die ich würde versuchen:

  • entfernen Sie alle CSS vorübergehend, um zu bestimmen, ob das Problem CSS-spezifisch ist
  • fügt Pixelbreiten zu den fließenden Elementen sowie dessen Elternelement
  • fügen Sie den wmode transparent param zu swfobject
  • hinzufügen position: relative

Ich habe von einem Bug in Flash gehört, dass offenbar nur, wenn die Flash-Lasten mit Teilen davon außerhalb des Bildschirms auftritt (das heißt body> #flash {margin-top: -50px}). Ihr Problem könnte möglicherweise sein, eine Variante davon.

Alternativ können Sie das div mit Überlauf fallen zusammen und versuchen, einen Container in Flash mit einem Scrollbar erstellen und laden die einzelnen SWF-Dateien in diese einen Container Flash-Datei.

Dies ist nur ein Problem zu umgehen, aber man könnte versuchen Platzhalter zunächst für die Flash-Objekte zu erstellen (wie divs mit der entsprechenden Höhe und Breite) und nur den Film lädt (über so etwas wie swfobject ), wenn es zuerst sichtbar wird. Dies kann einige Probleme verursachen (dh Filme nicht Vorbelastung, bevor sie sichtbar sind), aber es kann akzeptabel sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top