views:

5060

answers:

5

I'm loading an SWF movie into an HTML page using SWFObject. I want to resize this SWF dynamically. How can SWFObject help? I'm sure I don't have to write my own solution.

+2  A: 

Check out swffit, it should fit the bill perfectly.

grapefrukt
It does not resize the flash SWF, it only does something to the Div that holds it. I want to actually scale the flash SWF up and down much like resizing the Solitaire window.
Jenko
+3  A: 

The easiest solution is to embed the SWF within a container div, then use JavaScript and CSS to dynamically resize the container DIV. If the SWF is set to 100% width/height, it will stretch to fit the wrapper whenever the wrapper is resized.

In the body:

<div id="wrapper">
<div id="flash">This div will be replaced by an object via SWFObject</div>
</div>

In the head:

<script>
var flashvars = {};
var params = { scale: "exactFit" };
var attributes = {};

swfobject.embedSWF("myContent.swf", "flash", "100%", "100%", "9.0.0","expressInstall.swf", flashvars, params, attributes);
</script>

<style type="text/css">
#flash {
   display: block;
   width: 100%;
   height: 100%;
}
</style>

Now whenever you resize #wrapper, the SWF will scale to fill it.

pipwerks
A: 

I believe the code above should read:

#wrapper {
   display: block;
   width: 100%;
   height: 100%;
}
A: 

The answer @pipwerks gave above worked great for me. I'm using swfobject2 and was having trouble sizing the swf appropriately.

SeanZ
A: 

This did not work for me but did some small changes as indicated in http://code.google.com/p/swfobject/wiki/faq section "How can I create a SWF that will encompass 100% of the browser window?"

as this

<style type="text/css" media="screen">
  html, body, #containerA, #containerB { height:100%; }
  body { margin:0; padding:0; overflow:hidden; }
</style>

and perfect!

Riga