使用 SWFObject 加载 SWF 时调整其大小
Posted
技术标签:
【中文标题】使用 SWFObject 加载 SWF 时调整其大小【英文标题】:Resize an SWF when loading it with SWFObject 【发布时间】:2010-10-31 11:09:01 【问题描述】:我正在使用 SWFObject 将 SWF 电影加载到 html 页面中。我想动态调整这个 SWF 的大小。 SWFObject 如何提供帮助?我确定我不必write my own 解决方案。
【问题讨论】:
我认为您需要澄清“调整大小”flash swf 的含义。当它的嵌入大小发生变化时,它“内部”的行为方式取决于你最初是如何制作 swf 的。 我需要调整 SWF 容器的大小...顺便说一句,我知道在 Flash SWF 中设置的缩放 (Stage.scaleMode) 和对齐 (Stage.align) 选项会影响内容如何受到影响,因为容器调整大小。 【参考方案1】:最简单的解决方案是将 SWF 嵌入容器 div 中,然后使用 javascript 和 CSS 动态调整容器 DIV 的大小。如果 SWF 设置为 100% 宽度/高度,则每当调整包装器大小时,它将拉伸以适合包装器。
在体内:
<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 都会缩放以填充它。
【讨论】:
【参考方案2】:查看swffit,它应该完全符合要求。
【讨论】:
它不会调整 Flash SWF 的大小,它只会对保存它的 Div 做一些事情。我想真正地向上和向下缩放 Flash SWF,就像调整 Solitaire 窗口的大小一样。【参考方案3】:这对我不起作用,但做了一些小的更改,如 http://code.google.com/p/swfobject/wiki/faq “如何创建一个包含 100% 浏览器窗口的 SWF?”部分?
这样
<style type="text/css" media="screen">
html, body, #containerA, #containerB height:100%;
body margin:0; padding:0; overflow:hidden;
</style>
完美!
【讨论】:
【参考方案4】:我相信上面的代码应该是:
#wrapper
display: block;
width: 100%;
height: 100%;
【讨论】:
这条评论是错误的:当它的目的是调整大小时,你为什么要将包装器设置为 100%?只考虑@pipwerks 的回答。以上是关于使用 SWFObject 加载 SWF 时调整其大小的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swfobject 通知 HTML 容器 SWF 已完成