2012-04-01 1 views
0

JavascriptまたはJQueryでプリローダーを作成して、swfや画像のようなWebページ内のすべての要素が完全に読み込まれて表示されるようにする方法はありますか?私はswfsのフラッシュでプリローダーを持っていますが、何度か不安定な再生をします。私のコードは正常に動作しますが、Webページが再生される前にJavascriptやJQueryを使用してページ全体をプリロードする方法ですか?JavascriptまたはJQueryでswfsのプリローダーを作成する方法はありますか?

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>???</title> 
<script type="text/javascript" src="swfobject-1.5.js"></script> 
<script language="javascript" type="text/javascript" src="jquery-1.2.6.min.js"> </script> 
<script type="text/javascript"> 

$(document).ready(function(){ 
    if(readCookie("flashPlayed") == "true"){ 
     Jvid()&&Bg() 
    } 
}); 

function launchFlash(){ 
    if(readCookie("flashPlayed") != "true"){ 
var homeflash = new SWFObject("???.swf", "BG", "100%", "100%", "8"); 
homeflash.addParam("wmode","transparent"); 
homeflash.write("videoBg"); 
var homeflash = "Bg"; 
setTimeout("Bg()"); 
setTimeout("Jvid()",5000); 
setTimeout("removeFlash()",5000); 
    } 
} 

function readCookie(cookieName){ 
    var searchName = cookieName + "=" 
    var cookies = document.cookie 
    var start = cookies.indexOf(cookieName) 
    if (start == -1){ // cookie not found 
     return "" 
    } 
    start += searchName.length //start of the cookie data 
    var end = cookies.indexOf(";", start) 
    if (end == -1){ 
     end = cookies.length 
    } 
    return cookies.substring(start, end) 
} 

function Jvid(){ 
    $("#videos").hide(); 

} 
function Bg(){ 
    $("#test").css({"background":'url("???.jpg")',"background-position":'top center'}); 
} 
function removeFlash(){ 
    $("#videoBg").empty(); 
    $("#videoBg").animate({ top:"-9999px"}, 1); 
    window.location.assign("http://???.com") 
} 
</script> 
<style> 
#test { 
    font-family: Geneva,Arial,Helvetica,sans-serif; 
    font-size: 12px; 
    height: 100%; 
    margin: 0; 
    padding: 0; 
    text-align: left; 
    width: 100%; 
    position:relative; 
    background:url(???.jpg) top center repeat #000; 
} 

#videoBg{ 
position:fixed; 
top:-5px; 
left:0px; 
height:100%; 
width:100%; 
} 

#videos{margin:0 auto 0; 
padding:0; 
height:301px; 
width:205px; 
position:absolute; 
/*border-style:solid; 
border-color:red;*/ 
top:134px; 
left:800px; 
*left:645px; 
left:645px\0/; 
} 

</style> 
</head> 
<body id="test"> 
<div id="videos"> 
<script src="swfobject.js" type="text/javascript"></script> 
<script type="text/javascript"> 
var flashvars = {}; 
var params = {}; 
params.wmode = "transparent"; 
swfobject.embedSWF("???.swf", "videos", "205", "301", "8.0.0", '', flashvars, params); 
</script> 
</div> 
<div id="videoBg"></div> 
<script type="text/javascript"> 
      setTimeout("launchFlash()", 7000); 

    </script> 


</body> 
+0

フラッシュを更新してください(新しいバージョンでは改善が図られていますが、既にリソースが枯渇していますので注意してください)。他のブラウザでもテストしてください。プリローダが原因でchoppinessが発生しないようにしています(何を言っているのでしょうか)。 – Joseph

+0

@JosephページにJavaScriptハンドラがいっぱいで、新しいswfをajaxでロードすると、swfのプリローダによっては時々choppinessが発生します。あなたのJS関数は 'setTimeout(func、0)'で機能します。これによりスレッドは彼の仕事をより良くし、プリローダーを再生します。 – khael

答えて

1

フラッシュパーツがあなたのものである場合は、実行できます。これは、ASから外部インターフェイスを使用し、JavaScript関数を呼び出して読み込み量を通知し、いつ再生を開始するかを尋ねることを意味しますが、これを行うには宗教的ではありません。

+0

はい私はswfsのフラッシュを持っています。 JavaScriptローダーを呼び出す外部インターフェイスASのチュートリアルへのリンクを知っていますか? – Robert

関連する問題