2009-07-22 13 views
1

Ich habe eine Flex-App, die ich in einem Div ausblenden möchte, bis der Benutzer auf einen Link oder ein Element eines Typs klickt. Ich habe bemerkt, dass das swf in ein div mit style-display eingebettet ist: keiner versteckt das swf nicht, also wie würde ich das erreichen?Verstecken/Anzeigen eines swf in einem div?

Das Ziel ist es, die Flex-App im Hintergrund zu laden, während der Benutzer andere Dinge tut. Danke.

Antwort

2

Ich zwinge in der Regel nur die Höhe/Breite des Behälters 1 von 1 px ...

<div style="height:1px; width:1px;" >... flash goes here ...<div> 

Dann, wenn ich den Blitz benötigen, werde ich die Höhe/Breite entsprechend neu eingestellt. Beachten Sie, dass Sie dies in einen übergeordneten Container einfügen möchten, wenn Sie die hw auf "100%" zurücksetzen möchten, die an ein übergeordnetes div mit einer "position: relative; height:? Px; width:? Px" gebunden wird. Rahmen.

5

Versuchen Sie, das folgende wmode auf Ihr Flash-Objekt zu setzen, und verwenden Sie auch visibility: hidden;.

<param name="wmode" value="opaque" /> 
<embed ... wmode="opaque" ... /> 

standardmäßig überlagert Flash grundsätzlich ein Fenster über Ihre Inhalte, die ist:

  1. hat einen größeren Z-Index als alles, was auf Ihrer Seite
  2. erbt nicht Anzeige von seinem übergeordneten (Die Einstellung display: none; visibility: hidden; für den Tag <object> funktioniert).

von wmode-opaque Einstellung, es sagt im Grunde Flash Ihr <object> als normalen DOM-Tag zu behandeln, die in den normalen Vererbung und z-Index-Regeln reagiert. Es hat einen sehr geringen Leistungsaufwand.

Beachten Sie auch, dass einige Browser das Objekt nicht laden, bis es angezeigt wird.

+0

Dies funktioniert nicht in IE8, IE6 oder Opera. display: none kann das eingebettete swf immer noch nicht verbergen. Ich brauche das im Wesentlichen in allen Browsern zu arbeiten. (Opera, Chrome, IE6/7/8, Firefox3/3.5/3.5.1, Safari 3+) –

+1

** @ iftrue: ** meine Post für weitere Informationen aktualisiert. Sie können immer versuchen, 'display: none; visibility: hidden; 'auf Ihrem Objekt Tag selbst, aber ich habe' wmode' ohne Probleme in den genannten Browsern in der Vergangenheit verwendet. –

+0

Wie sich herausstellte, gab es einen speziellen Flash-Bereitstellungsprozess, der durch mehrere JavaScript-Includes verdeckt wurde. Die Verwendung von wmode an der richtigen Stelle hat gut funktioniert :). –

Verwandte Themen