1

我按照本教程检查远程服务器上是否存在 swf。这是我的代码:

var url = 'http://' + layer_path;
var flashvars = {};
var params = { scale: "exactFit", wmode: "transparent" , allowscriptaccess: "always" };
var attributes = {class:'flash' ,name: swf_id};
var callback = function(e){
    if (hidden) $('#'+conteiner_id).hide();
    window.setTimeout(function(){

        if (e.ref.PercentLoaded() == 0) {
            // File does not exists
        }
    },1000);
};
swfobject.embedSWF(url, swf_id, "100%", "100%", "9.0.0","expressInstall.swf", flashvars, params, attributes,callback);

swf 被插入到带有 is 的 div 中swf_id,它驻留在带有 id 的 div 中conteiner_id

代码运行良好,除非hide参数设置为 true,并且父 div 被隐藏。然后,我收到以下错误消息:

Uncaught TypeError: Object #<HTMLObjectElement> has no method 'PercentLoaded' 

我怎样才能做到这一点?

4

1 回答 1

1

某些浏览器(如 Firefox)具有延迟加载不可见的 Flash 插件的性能优化。除了确保它们至少部分可见之外,没有其他办法。

一种流行的解决方法是将它们的大小设置为非常小(只有几个像素)并确保它们在屏幕上,然后一旦加载,您就可以将它们移出屏幕或隐藏它们。

于 2013-10-26T16:53:12.117 回答