WPF webbrowser控件 - 闪存只能在第一次使用

时间:2014-07-10 09:50:23

标签: wpf flash webbrowser-control

我的wpf应用程序有一个非常奇怪的问题。 我使用webbrowser控件来显示使用flash提供某些功能的第三方网页。

在Internet Explorer 9和10上我有一个特殊的行为:我第一次打开webbrowser控件时一切正常,应用程序将.SWF文件放在我的临时Internet文件夹中。当我关闭并重新打开web控件时,会出现以下错误:

"对象不支持属性或方法' UpdateTimeLeft'"。

如果我手动删除临时文件夹中的.SWF文件,请关闭广告重新打开该应用程序,一切正常。

这是出现异常的代码:

var swfUrl = "//" + serverName + "/js/tv/FlashTurboLotto3.swf";
    var expressSwfUrl = "//" + serverName + "/js/tv/expressInstall.swf";
    var flashvars = {}; 
    var params = {wmode:"transparent", allowscriptaccess:"always" };
    var attributes = {id:"FlashTurboLotto3",  name:"FlashTurboLotto3", align:"top"};

    swfobject.embedSWF(
            swfUrl, 
            "flashcontent", 
            "100%", 
            "197", 
            "9.0.0", 
            expressSwfUrl, 
            flashvars,
            params,
            attributes
        );


    function updateTimeleft(drawID, timeleft)
    {   
        var swf = document.getElementById("FlashTurboLotto3");
        swf.updateTimeleft(parseInt(drawID), timeleft);
    }

有没有人知道为什么会出现这种情况以及如何解决这个问题? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案 - 这是Flash的一个非常特殊的错误。有时会发生当Flash应用程序在非本机浏览器中运行时(例如,在我的情况下,WPF中的webbrowser控件),javascript在从缓存中检索.swf文件时失败,因此Flash对象将不会被初始化。 / p>

目前,我解决了强制不使用浏览器缓存,只是在.Swf下载网址中添加随机值。