让SWFObject更新闪存,但不要求它

时间:2011-09-23 09:14:33

标签: flash swfobject

我有一款游戏可以在Flash Player 11(使用Molehill)中更好地工作,但也适用于10.3。我想让玩家尽可能快地自动更新到11(当然是在发布之后),但不想强迫它们。

我试着用SWFObject嵌入它:

swfobject.embedSWF(
    // url
    "game.swf?version=1",
    // content to replace
    "flashContent",
    // size
    "910", "658",
    // flash version
    "11",
    // expressInstall
    "playerProductInstall.swf",
    // flashvars
    {},
    // params
    {
        wmode: "transparent",
        allowScriptAccess: "always"
    },
    // object attributes
    {},
    // callback
    function(e) {
        if (e.success) {
            console.log("SWF loaded", e);
            gameSwf = e.ref;
        } else {
            console.log("SWF not loaded", e);
        }
    }
);

然而,这将使游戏需要 11,这意味着如果快速安装不起作用(Linux)或被用户取消,游戏就不会加载,即使它会运行得很好。

还有其他方法可以做我想要的吗?

2 个答案:

答案 0 :(得分:0)

制作所需的版本10.3 然后编写javascript以检测版本是否为11.如果不是,请显示更新链接。

最好还是要求fp11,它不会造成伤害

答案 1 :(得分:0)

与Pravnav的答案类似,我会使用10.3嵌入游戏,然后在电影上方放置一个小横幅,表示他们的Flash Player版本已过期,游戏在FP 11+中表现最佳。使横幅可单击并使用swfobject的swfobject.showExpressInstall方法触发快速安装。

棘手的部分是快速安装支持:正如你所说,EI在Linux中不起作用,但它在谷歌浏览器中也不起作用,因为Chrome使用嵌入式自我更新版本的FP。编写一些嗅探JS可能会很有用,它为这些浏览器提供了一个指向Adobe.com的链接,而不是使用快速安装。