0

我一直在将 swfobject 用于最近的一个项目,它很棒。但是现在我已经设法让 FlashSwitcher 在 Firefox 中启动并运行,我注意到当我运行 Flash Player 7 时,当我运行低于我指定的版本时显示的信息已经被自定义(在这种情况下由swfobject 嵌入代码所在的 Moodle 页面)。附件是由 Moodle 生成的该输出 SWF 的屏幕截图。我可以确认我的一些用户也看到了这一点,因此我的 FlashSwitcher 运行正常。

我的大多数用例都在 Moodle 上下文之外,它们是独立的,我所追求的正是他们如何定制它,我如何改变他们的定制,以及当 swfobject 检测是独立的时我如何做同样的事情。

请注意,强制用户通过 ExpressInstall 升级他们的 Flash Player 插件已被客户端所反对,他们需要提示性操作和链接 - 但不能自动安装或类似的。

我的实现使用“两次煮熟”方法,因为如果用户既没有 Flash、Javascript 或两者都没有,我有一个可访问性要求来显示非 Flash 内容。这是我的嵌入方法调用,它在 YUI2 文档加载事件触发时执行:

swfobject.embedSWF("../../swf/video-loader.swf", "flash_object_a", "877", "400", "8.0");

最终,我想将这个“旧版本”输出自定义为我创建/编写的东西。

在 Moodle 上下文中时 swfobject 2.1 旧版本通知的屏幕截图

干杯,d

4

1 回答 1

1

您可以使用 swfobject 的getFlashPlayerVersion方法(在此处解释)来检查 Flash Player 版本并采取适当的措施。

一个简单的例子是:

var has_version_8_or_greater = swfobject.hasFlashPlayerVersion("8");

if(has_version_8_or_greater){
   //embed SWF using SWFObject
} else {
   //Check to see whether an older version of Flash is found.
   var version = swfobject.getFlashPlayerVersion();
   if(version.major > 0){
      //You have Flash but it's too old.
      var version_str = version.major + "." + version.minor + "." + version.release;
      alert("You have Flash Player version " + version_str + ". Please update!");
   } else {
      //You don't have Flash.
   }
}
于 2011-01-05T17:46:31.303 回答