gpt4 book ai didi

javascript - Chrome 缩放闪光灯不正确

转载 作者:搜寻专家 更新时间:2023-11-01 04:38:18 27 4
gpt4 key购买 nike

我使用下面的函数来创建用于显示 flash 对象的代码。原始 flash 大小为 320x240,但我想将其显示为 200x150,因此我使用参数宽度为 200、高度为 150 的函数。所有浏览器都可以正常工作,但 chrome 不能。它显示为 200x151(检查代码显示 200x151 大小)。为什么?

function getFlashCode(params)
{
debug('getFlashCode');
var defaultParams = {movie: '', flashvars: {}, width:'', height: ''};
for (var key in defaultParams)
{
if (params[key] === undefined)
params[key] = defaultParams[key];
}

var flashvars = '';
for (var key in params.flashvars)
flashvars += encodeURIComponent(key) + '=' + encodeURIComponent(params.flashvars[key]) + '&';

var id = "fl" + Math.random();
var code="";
code += " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"" + params.width + "\" height=\"" + params.height + "\" align=\"middle\" id=\"" + id + "\">";
code += " <param name=\"movie\" value=\"" + params.movie + "\" \/>";
code += " <param name=\"quality\" value=\"high\" \/>";
code += " <param name=\"play\" value=\"true\" \/>";
code += " <param name=\"loop\" value=\"true\" \/>";
code += " <param name=\"wmode\" value=\"transparent\" \/>";
code += " <param name=\"scale\" value=\"showall\" \/>";
code += " <param name=\"menu\" value=\"true\" \/>";
code += " <param name=\"devicefont\" value=\"false\" \/>";
code += " <param name=\"salign\" value=\"\" \/>";
code += " <param name=\"allowScriptAccess\" value=\"always\" \/>";
code += " <param name=\"flashvars\" value=\"" + flashvars + "\" \/>";
code += " <!--[if !IE]>-->";
code += " <object type=\"application\/x-shockwave-flash\" flashvars=\""+ flashvars + "\" data=\"" + params.movie + "\" width=\"" + params.width + "\" height=\"" + params.height + "\">";

code += " <param name=\"movie\" value=\"" + params.movie + "\" \/>";
code += " <param name=\"quality\" value=\"high\" \/>";
code += " <param name=\"play\" value=\"true\" \/>";
code += " <param name=\"loop\" value=\"true\" \/>";
code += " <param name=\"wmode\" value=\"transparent\" \/>";
code += " <param name=\"scale\" value=\"showall\" \/>";
code += " <param name=\"menu\" value=\"true\" \/>";
code += " <param name=\"devicefont\" value=\"false\" \/>";
code += " <param name=\"salign\" value=\"\" \/>";
code += " <param name=\"allowScriptAccess\" value=\"always\" \/>";
code += " <param name=\"flashvars\" value=\"" + flashvars + "\" \/>";
code += " <\/object>";
code += " <!--<![endif]-->";
code += " <\/object>";
return code;
}

最佳答案

首先,该代码相当难读,并且您会遇到一些问题。正如 Kos 所说,我强烈建议您使用 swfobject嵌入您的 Flash 文件,因为它可以处理所有浏览器的异常情况。此外,您的大部分参数都不需要,因为它们的默认值已经指定。这是我推荐的方法:

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
var params = {};
var attributes = {};

swfobject.embedSWF("filename.swf", "div-id-here", "200", "150", "9.0.0","expressInstall.swf", flashvars, params, attributes);
</script>

然后您只需添加带有您在 javascript 代码中指定和设置的 id 的 div 元素即可。我还必须提到我马上看到的一个问题:300/240 的宽/高比是 1.25,而 200/150 的比是 1.333,这意味着除非闪光灯被制作成缩放和改变周围的元素在尺寸上,您的 Flash 电影将有边框以保持比例,除非您更改比例模式(showall 不是可能的选项之一)。

我不知道闪存是如何编程的,也不知道你到底想做什么,但我会把它留给你去尝试并阅读 params documentation on Adobe's site .

关于javascript - Chrome 缩放闪光灯不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com