一直想對這個應用做個總結,今天偶然百度到這個效果,為此做個筆記。
用這個js的好處:
1.IE中沒有討厭的虛框問題了。
2.提供了完善的版本檢測功能,如果版本不夠則顯示其他東西,比如圖片或文字。
3.易於使用,只要在頁面頭加載一個 .js 文件,然后 HTML 寫一個容器,里面放普通的文本或圖片(用於無法顯示 Flash 時顯示),最后用腳本來替換這個元素里面的內容為 Flash。
4.使得插入Flash媒體資源盡量簡捷、安全。而且它是非常符合搜索引擎優化的原則的。
5.能夠避免HTML、XHTML中出現object、embed等非標准標簽,從而符合更加標准。
只需要包含 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里,在瀏覽器顯示出來。
解釋一下這些參數的作用:
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標簽寫出來。這里 在調用過來。