swfobject.js 詳細解說

一直想對這個應用作個總結,今天偶然百度到這個效果,爲此作個筆記。javascript

用這個js的好處:html

1.IE中沒有討厭的虛框問題了。
2.
提供了完善的版本檢測功能,若是版本不夠則顯示其餘東西,好比圖片或文字。
3.
易於使用,只要在頁面頭加載一個 .js 文件,而後 HTML 寫一個容器,裏面放普通的文本或圖片(用於沒法顯示 Flash 時顯示),最後用腳原本替換這個元素裏面的內容爲 Flash
4.
使得插入Flash媒體資源儘可能簡捷、安全。並且它是很是符合搜索引擎優化的原則的。
5.
可以避免HTMLXHTML中出現objectembed等非標準標籤,從而符合更加標準。java

只須要包含 swfobject.js這個js文件,而後在DOM中插入一些簡單的JS代碼,就能嵌入Flash媒體資源了。下面是一個最簡單的範例:瀏覽器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
< 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裏,在瀏覽器顯示出來。url

解釋一下這些參數的做用:spa

   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標籤寫出來。這裏 在調用過來。code

相關文章
相關標籤/搜索