views:

265

answers:

5

I am trying to use swfobject 2.2 to display an swf, but the swf won't scale to fit the div that I'm putting it in. You can see what I've got here.

When it first loads, it is the right size, then it expands larger for some reason. If I right-click on the movie and select "Show All", it then fits perfectly.

Here is the code to generate the sfobject:

var flashvars = {};
var params = {}
params.scale = "showAll";
params.allowscriptaccess = "always";
var attributes = {};                    
swfobject.embedSWF("/content/tour.swf", 
"flashContent", "900", "700", "9.0.0", "expressInstall.swf", 
                       flashvars, params, attributes);

Any help/suggestions would be greatly appreciated!

A: 

You need to add some extra script like so:

function resizeFlashDiv()
{
        var theDiv = document.getElementById("navContainer");

        var theHeight = Math.floor(theDiv.offsetWidth * .33625) + 50; // add
the variable portion plus the fixed portion of the Flash

        theDiv.style.height = theHeight + "px";

}

This will make your SWF fill the DIV.

Todd Moses
Thanks for the answer Todd, but it didn't appear to do anything. Any other ideas?
consultutah
A: 

To make the size of the div set the size of the swf (or rather the Flash Player) you can use "100%" for size in the swfobject.embedSWF() call, instead of a pixel size.

swfobject.embedSWF("/content/tour.swf", "flashContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

The other parameter to work with is scale. The alternatives are:

  • "showAll": The entire application is visible in the specified area without distortion while maintaining the original aspect ratio of the application. Borders can appear on two sides of the application.

  • "exactFit": The entire application is visible in the specified area without trying to preserve the original aspect ratio. Distortion can occur, and the application may appear stretched or compressed.

  • "noBorder": The entire application fills the specified area, without distortion but possibly with some cropping, while maintaining the original aspect ratio of the application.

  • "noScale": The entire application is fixed, so that it remains unchanged even as the size of the player window changes. Cropping might occur if the player window is smaller than the content.

Lars
I'm doing that, but without success. You must be right, because everyone who has answered has said the same thing, but I can't figure out what's wrong...
consultutah
A: 

The quickest thing I can think of is just setting the width to 100%. I've tested and it seems to work fine:

screenshot link full width

Lars has already posted all the available alternatives.

HTH, George

George Profenza
I must be doing something horribly wrong since all three of you say the same thing, but I can't get it to work...
consultutah
George, I set the width to 100% and it doesn't work for me, yet I can see your screenshot. If there anything else I might need to do? Thx
consultutah
A: 

Here is the answer in case anybody cares. Jing videos cannot be scaled.

consultutah
A: 

check inside your loaded swf code, if you are setting the stageScaleMode to noScale. That was the source of my problem.

Jassi