0
  • swfobject.js - 除其他外 - 检测浏览器是否有 flash 插件,如果没有,则显示错误消息(例如,单击此处获取 flash 插件)。
  • swffit.js 允许您设置 swf 的最小和最大尺寸,因此它们在小屏幕上缩小,在大屏幕上放大(而且,奇迹般地,它以 swf X 和 Y 为中心)。

swffit 下载示例首先运行 swfobject.js,然后运行 ​​swffit.js。这会导致以下...

  • 在启用了 flash 插件的 FF 和 Chrome 中,swffit 完成了它的工作
  • 在禁用了 flash 插件的 FF 和 Chrome 中,没有 swf,也没有错误消息,只是一个空白屏幕 - swffit 不知何故覆盖了 swfobject 非常有用的功能。

颠倒顺序,即 首先是 swffit.js,然后是 swfobject.js...

  • 在 FF 和 Chrome 中,启用或禁用 flash 插件后,我没有收到 swf 但有错误消息。

总之,我需要 swffit 的可调整性,还需要 swfobject 的错误消息,但看起来你不能同时拥有这两个脚本。有什么想法吗?

4

2 回答 2

0

很简单,只有在 SWFObject 嵌入成功时才调用 SWFFit。使用 SWFObject 的回调方法执行此操作。

您没有提供任何代码示例,所以我将使用 SWFFit 站点中的一个:

swfobject.embedSWF("example.swf", "my_flash", "550", "400", "8.0.0");
swffit.fit("my_flash");

重新配置为使用 SWFObject 的回调方法的示例:

var flashvars = {};
var params = {};
var attributes = {};
var callbackHandler = function (e){
    if(e.success){
        swffit.fit("my_flash");
    }
};

swfobject.embedSWF("example.swf", "my_flash", "550", "400", "8.0.0", false, flashvars, params, attributes, callbackHandler);
于 2013-06-22T21:46:16.947 回答
0

经过进一步调查,我发现这是一个放置问题,而不是脚本冲突。如果您禁用您的 Flash 插件并在此处尝试示例页面(页面底部):

基本示例 (1) 显示 swfobject 错误消息,但具有最大大小的示例页面 - 居中 (4) 没有。

在本地文件上玩 css,结果发现消息在那里(在 4 中)但在屏幕左上方。如果您查看(3)具有最大尺寸的示例页面 - 水平居中,您可以看到问题。

修复是 - 在 swffit.fit("my_flash",550,289,800,436) 的情况下:

<div id="my_flash" style="position:relative;">
<div style="width:550px;height:289px;text-align:center;margin:0 auto;">
<div style="margin:0 auto;width:120px;text-align:center;margin-top:100px">
error message here
</div>
</div>
</div>

这会将错误消息集中在最大宽度(800 像素)和最小宽度(550 像素)。

于 2013-06-23T10:22:00.240 回答