使用SWFObject加载SWF时如何调整大小

7
我正在使用SWFObject将SWF电影加载到HTML页面中。我想要动态调整这个SWF的大小。 SWFObject如何帮助?我肯定不需要自己编写解决方案。

我认为你需要澄清“调整大小”Flash SWF的含义。当嵌入的大小发生变化时,它在内部的行为方式取决于你最初创建SWF的方式。 - grapefrukt
我需要调整SWF容器的大小...顺便说一下,我知道关于缩放(Stage.scaleMode)和对齐(Stage.align)选项在Flash SWF中的设置会影响内容随着容器调整大小而受到的影响。 - Robin Rodricks
4个回答

24

最简单的解决方法是将SWF嵌入容器div中,然后使用JavaScript和CSS动态调整容器DIV的大小。如果将SWF设置为100%宽度/高度,则每当调整包装器大小时,它将拉伸以适应包装器。

在body中:

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

在头部:

<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>

现在无论何时您调整# wrapper的大小,SWF都会按比例缩放以填充它。


4

请查看swffit,它应该完美适合你的需求。


它不会调整Flash SWF的大小,它只会对包含它的Div进行一些操作。我想要实际上像调整纸牌窗口大小一样缩放Flash SWF。 - Robin Rodricks

1

这对我没有起作用,但是我根据http://code.google.com/p/swfobject/wiki/faq中的"How can I create a SWF that will encompass 100% of the browser window?"一节所示进行了一些小的更改。

如下所示:

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

非常完美!


-1

我相信上面的代码应该是这样的:

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

这个评论是错误的:当包装器的目的是被调整大小时,为什么要将其设置为100%?只考虑@pipwerks的答案。 - Gil Zumbrunnen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接