我正在尝试使用我的Flash嵌入HTML页面做一些不同的事情。我在右键单击上下文菜单中添加了一个选项,可在两种比例模式之间切换: noscale 和 exactfit 。当我将swf作为独立程序运行但不在HTML页面中运行时,这是有效的。有没有人有任何想法,如果有办法嵌入一个SWF并动态改变比例模式?也许嵌入100%的宽度和高度?但是我试过了,它打破了嵌入式javascript代码。
<script type="text/javascript">
var params = {};
params.scale = "exactfit"
var flashVars = {};
swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", null, flashVars, params);
</script>
答案 0 :(得分:1)
See this post about resizing a SWF set to 100% width/height。
但是如果你想从noScale
切换到exactFit
(反之亦然),你可能需要编辑JavaScript中的param
节点。
我从未真正尝试过(我不确定它是否会起作用),但这是我要试验的内容:
function setScaleMode(mode){
var paramNodes = document.getElementsByTagName("param");
for(var i=0, len=paramNodes.length; i<len; i++){
var node = paramNodes[i];
if(node.name === "scale"){
//switch to whatever scale mode you want to use.
node.value = mode;
//exit loop
return;
}
}
}
var params = { scale: "exactfit" };
var flashVars = {};
swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", false, flashVars, params);
(当然,如果页面上有多个SWF,则需要修改此代码。)
然后让你的ActionScript通过ExternalInterface调用JavaScript:
ExternalInterface.call("setScaleMode", "noscale");