一直想對這個應用作個總結,今天偶然百度到這個效果,爲此作個筆記。javascript
用這個js的好處:html
1.IE中沒有討厭的虛框問題了。
2.提供了完善的版本檢測功能,若是版本不夠則顯示其餘東西,好比圖片或文字。
3.易於使用,只要在頁面頭加載一個 .js 文件,而後 HTML 寫一個容器,裏面放普通的文本或圖片(用於沒法顯示 Flash 時顯示),最後用腳原本替換這個元素裏面的內容爲 Flash。
4.使得插入Flash媒體資源儘可能簡捷、安全。並且它是很是符合搜索引擎優化的原則的。
5.可以避免HTML、XHTML中出現object、embed等非標準標籤,從而符合更加標準。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