我按照tutorial检查远程服务器上是否存在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插入到具有swf_id
的div中,该div位于ID为conteiner_id
的div中。
代码效果很好,除非hide
参数设置为true,并且隐藏了父div。然后,我收到以下错误消息:
Uncaught TypeError: Object #<HTMLObjectElement> has no method 'PercentLoaded'
我怎样才能做到这一点?
答案 0 :(得分:1)
某些浏览器(如Firefox)具有性能优化功能,可以延迟加载不可见的Flash插件。除了确保它们至少部分可见之外,没有办法解决它。
一种流行的解决方法是将它们的大小设置得非常小(只有几个像素)并确保它们在屏幕上,然后一旦加载,就可以将它们移出屏幕或隐藏它们。