swfobject.js 詳細解說


 

央視也在使用。http://news.xmtv.cn/2013/11/20/ARTI1384945345418131.shtml

<p id="mbreplace" style="text-align: center;">
        <span id="embed_playerid" style="text-align: center;">Video Here    </span> 
    <script type="text/javascript" src="http://js.player.cntv.cn/innerShare.js"></script> 
    <script type="text/javascript" src="http://js.player.cntv.cn/creator/swfobject.js"></script> 
    <script type="text/javascript">
    
        var fo =createPlayer("v_player",540,400);
        fo.addVariable("videoId","vid");
        fo.addVariable("videoCenterId","de1b41b83ae64fb5937ce152cb1025c5");
        fo.addVariable("isAutoPlay","true");
        fo.addVariable("tai","news");
        fo.addVariable("languageConfig","");
        writePlayer(fo,"embed_playerid");

     </script>

</p>

 

 

用這個js的好處:

1.IE中沒有討厭的虛框問題了。
2.提供了完善的版本檢測功能,如果版本不夠則顯示其他東西,比如圖片或文字。
3.易於使用,只要在頁面頭加載一個 .js 文件,然后 HTML 寫一個容器,里面放普通的文本或圖片(用於無法顯示 Flash 時顯示),最后用腳本來替換這個元素里面的內容為 Flash。
4.使得插入Flash媒體資源盡量簡捷、安全。而且它是非常符合搜索引擎優化的原則的。
5.能夠避免HTML、XHTML中出現object、embed等非標准標簽,從而符合更加標准。

只需要包含 swfobject.js這個js文件,然后在DOM中插入一些簡單的JS代碼,就能嵌入Flash媒體資源了。下面是一個最簡單的范例:

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "400", "100%", "8", "#336699"); 
   so.addParam("quality", "low");
   so.addParam("wmode", "transparent");
   so.addParam("salign", "t");
   so.addVariable("variable1", "value1");
   so.addVariable("variable2", "value2");
   so.addVariable("variable3", "value3");
   so.addVariable("variable1", getQueryParamValue("variable1"));
   so.addVariable("variable2", getQueryParamValue("variable2"));
   so.write("flashcontent");
</script>

  

<div id="flashcontent">[...]</div>首先,我們要為SWF資源預留一個HTML結點。這個HTML結點內的所有內容都會在客戶端被Flash資源替換,當客戶端沒有安裝Flash播放器的時候,這些內容會顯示出來。這一特色在SEO以及對用戶體驗方面非常有必 要。

var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);創建一個新的SWFObject實例,並且傳入一下參數:

swf - SWF文件路徑 
id - 您為這個SWF文件分配的id值,它將用於給embed與object標簽設定name屬性,以便於可以支持swliveconnect的功能,如動態傳 入變量 
width - 寬度 
height - 高度 
version - FlashPlayer需要的版本號,它可以詳細到 '主版本號.小版本號.細節',例如:"6.0.65"。一般地,我們只需傳入主版本即可,例如:"6"。 
background-color - Flash資源的背景色,16進制格式 
此外,還有如下可選參數:

quality - 畫面質量,默認為"high"。 
xiRedirectUrl - 詳見ExpressInstall相關 
redirectUrl - 沒有安裝相應版本的播放器后自動跳轉的目標地址 
detectKey - 這是當忽略檢測時,SWFObject將去url地址中查找的變量,默認值為“detectflash”,后續有詳細介紹 
so.write("flashcontent");將Flash資源應用到DOM里,在瀏覽器顯示出來。

解釋一下這些參數的作用:

   var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);         //這段是SWFObject必須的基本參數,所有SWFObject都必須包含的。
   so.addParam("Param1", "Param2");   //這里是給Flash添加內聯參數,可以實現諸如背景透明之類的效果。依照需求添加就可以了,參數和emded/object標簽是一樣的代碼,下同。
   so.addParam("Param3", "Param4");
   so.addParam("Param5", "Param6");
   so.addVariable("variable1", "value1");    //這里是給Flash添加FlashVar,這是以FlashVar的方式給Flash的Root添加變量,對於Number型變量在Flash端需要 做類型轉換。
   so.addVariable("variable2", "value2");
   so.addVariable("variable3", "value3");
   so.addVariable("variable1", getQueryParamValue("variable1"));   //Flash獲取URL變量對於url?arg1=test1&arg2=test2這樣用GET方式傳遞變量的URL,我們可以用 getQueryParamValue方法來獲取變量。
   so.addVariable("variable2", getQueryParamValue("variable2"));
   so.write("content");    //這里是至關重要的一個地方,他是用一段特定內容取代Flash無法顯示時的內容。可以事先在CSS里定義好樣式,在文檔里使用div標簽寫出來。這里 在調用過來。

 

此外發現這個寫法。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" xml:lang="zh-CN">
	<head>
		<title>index</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/swfaddress.js"></script>
<script type="text/javascript" src="js/swffit.js"></script>
<style type="text/css" media="screen">
html, body, body.sidebars {
	width:100%;
	height:700px;
	margin:0;
	padding:0;
}
object {
	outline:none;
}
</style>
	</head>
	<body>

<div id="websiteid"> <script type="text/javascript"> var flashvars = {}; var params = {quality: "high",wmode: "window",allowFullScreen: "true",devicefont: "false",allowscriptaccess: "always",scale: "noScale", salign: "mt",menu: "false"}; var attributes = {id: "flash"}; swfobject.embedSWF("index.swf", "websiteid", "100%", "768px", "9.0.0","expressInstall.swf", flashvars, params, attributes); swffit.fit("flash",1024,768); </script> </div>
</body> </html>

 

---

 參考資料:

1. http://www.cnblogs.com/wqing/archive/2012/06/25/2562888.html

我想自己編輯一下,結果發現找不到轉載按鈕,只好復制粘貼了。反正效果一樣。

 

2.央視網cntv.cn

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com