铬刻度闪烁错误
Chrome scales flash incorrectly
我使用下面的函数创建一个显示flash对象的代码。原来的闪光灯尺寸是320x240,但我想显示为200x150,所以我使用了params宽度为200,高度为150的函数。所有浏览器都能正常工作,但chrome不能。它显示为200x151(检查代码显示为200x161大小)。为什么?
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;
}
首先,该代码相当不可读,您将面临一些问题。正如科斯所说,我强烈建议你使用swfobject来嵌入你的Flash文件,因为它可以处理所有浏览器的怪异之处。此外,大多数param都不需要,因为它们的默认值已经指定了。这将是我推荐的方法:
<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>
然后,您只需要添加div元素,该元素具有您在javascript代码中指定和设置的id,就完成了。我还必须提到我现在看到的一个问题:300/240的宽高比为1.25,200/150的宽高比为1.333,这意味着除非闪光灯根据大小进行缩放和改变元素,否则你的flash电影上会有边框,以保持原来的比例,除非您更改缩放模式(showall
不是潜在选项之一)。
我不知道flash是如何编程的,也不知道你到底想做什么,但我会让你自己尝试一下,并阅读Adobe网站上的params文档。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 铬刻度闪烁错误
- Javascript图像动画闪烁图像错误
- 在 JavaScript 中展开/收回闪烁错误
- 单击提交按钮时错误闪烁
- 无法使图像闪烁(得到)预期的错误
- 最新版Chrome浏览器出现奇怪的闪烁错误
- Javascript验证-错误消息只闪烁一秒钟
- Javascript鼠标悬停元素闪烁;未捕获的类型错误
- 显示:块错误-保持闪烁
- 闪烁的星星背景错误-HTML5画布和Javascript