使用SWFObject,Flash在Firefox上向右移动1个像素

时间:2010-05-06 00:44:42

标签: javascript flash swfobject

请查看此页:http://islandhideaway.weebly.com/ 无论出于何种原因,当我在Mac上的Firefox中打开时,闪光幻灯片显示移动超过1个像素。所有其他浏览器都可以很好地呈现它,但只有在Firefox上,它在左边留下了1个像素的白色间隙!

我正在使用最新版本的SWFObject。不幸的是,这是一个垃圾Weebly网站,我不能在系统中使用jQuery,所以我不能做一个真正的画廊...所以让我们保存整个“不要用Flash那个”鼓励谈话。这对朋友有利,我已经意识到了更好的方法。 :)

4 个答案:

答案 0 :(得分:1)

你应该在目标代码中使用它

<param name="SCALE" value="exactfit" />

对于菜单,您应该使用透明闪光灯

<PARAM NAME=wmode VALUE=transparent> 

找到嵌入并添加此

wmode="transparent"

试试这个

答案 1 :(得分:1)

我遇到了同样的问题,kc rajput的答案对我没有帮助。 (所以这可能是两个不同的错误。)

对我来说,1px偏移错误的发生取决于浏览器视口宽度是奇数还是偶数像素。因此,稍微调整浏览器窗口大小会使问题消失或回来。 Flash对象位于水平居中的元素中。

无论如何,this tweak帮助了我。基本上我只为border-left: 1px solid transparent;的元素添加了margin-left: auto; margin-right: auto;

当然,如果你的居中元素已经包含边框,那就不那么简单。

答案 2 :(得分:0)

我意识到这个问题已经得到了回答,但我今天在谷歌上搜索这个问题并遇到了这个链接。我使用了一个似乎运行良好的javascript修复程序。我在这个Mozilla bug讨论中找到了原始的javascript,然后我对它进行了一些修改。

https://bugzilla.mozilla.org/show_bug.cgi?id=550246

这是我最终使用的javascript(我希望它在这篇文章中正确显示):

<script type="text/javascript">
var isFireFoxMac=false;
if (navigator.userAgent.indexOf("Firefox")!=-1) {
    if (navigator.platform == "MacIntel" || navigator.platform == "MacPPC") {
        isFireFoxMac = true;
    }
}
function isEven(value){
    return (value%2 == 0);
}
function ensureOddWidth() {
    var width = window.innerWidth;
    if (isEven(width)) {
      self.resizeTo(width-1, window.outerHeight);
    }
}
if (isFireFoxMac) {
    window.onresize = ensureOddWidth;
    window.onload = ensureOddWidth;
}
</script>

答案 3 :(得分:0)

您还可以执行以下操作:

div.flashContainer {position:relative; width:200px; left:50%; margin-left:-100px }

将宽度值替换为您的值,并使margin-left为负值。另一种集中内容的标准方法是避免边距:0自动错误。