私たちのウェブサイトでは、フラッシュ ビルダーで生成されたフラッシュを html に埋め込んでいます。フラッシュのサイズは 2M を超えています。ネットワークの状態が悪いため、フラッシュのロードに 30 秒かかる場合があります。フラッシュがブラウザによって完全に読み込まれたことをどのように確認すればよいですか?
質問する
2187 次
2 に答える
1
SWF をポーリングしてそのPercentLoaded
値を取得できます。
これを行う1つの方法は次のとおりです(learnswfobject.comからコピーされたコード):
function swfLoadEvent(fn){
//Ensure fn is a valid function
if(typeof fn !== "function"){ return false; }
//This timeout ensures we don't try to access PercentLoaded too soon
var initialTimeout = setTimeout(function (){
//Ensure Flash Player's PercentLoaded method is available and returns a value
if(typeof e.ref.PercentLoaded !== "undefined" && e.ref.PercentLoaded()){
//Set up a timer to periodically check value of PercentLoaded
var loadCheckInterval = setInterval(function (){
//Once value == 100 (fully loaded) we can do whatever we want
if(e.ref.PercentLoaded() === 100){
//Execute function
fn();
//Clear timer
clearInterval(loadCheckInterval);
}
}, 1500);
}
}, 200);
}
//This function is invoked by SWFObject once the <object> has been created
var callback = function (e){
//Only execute if SWFObject embed was successful
if(!e.success || !e.ref){ return false; }
swfLoadEvent(function(){
//Put your code here
alert("The SWF has finished loading!");
});
};
swfobject.embedSWF("movie.swf", "flashcontent", "550", "400", "9", false, false, false, false, callback);
于 2012-11-21T19:09:13.737 に答える