SWFObject參數

最近看到了好幾個Flash網站,head代碼裏都加載了一個swfobject.js,這個JS究竟有什麼做用呢?眼下正在作一個Web頁面,說不定恰好能夠派上用場。因而,好奇的搜索了一下。原來這是老外開發的,用於在HTML中方面插入Adobe Flash媒體資源(*.swf文件)的獨立、敏捷的JavaScript模塊,該模塊中的JavaScript腳本可以自動檢測PC、Mac機器上各類主流瀏覽器對Flash插件的支持狀況。目前最新的版本是2.2,這裏能夠下載最新版的SWFObject:
http://code.google.com/p/swfobject/ javascript

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


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

<script type="text/javascript" src="swfobject.js"></script>
  
<div id="flashcontent">
 This text is replaced by the Flash movie.
</div> 安全

<script type="text/javascript">
 var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
 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進制格式
此外,還有以下可選參數: google

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

SWFObject在 spa

<script type="text/javascript">
</script>

之間加入多個參數來實現各個效果,參數不少,可是實際只要一點點。咱們能夠看下這樣的代碼:

 <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>

這段代碼給出了SWFObject的經常使用參數:

  var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);
  so.addParam("Param1", "Param2");
  so.addParam("Param3", "Param4");
  so.addParam("Param5", "Param6");
  so.addVariable("variable1", "value1");
  so.addVariable("variable2", "value2");
  so.addVariable("variable3", "value3");
  so.addVariable("variable1", getQueryParamValue("variable1"));
  so.addVariable("variable2", getQueryParamValue("variable2"));
  so.write("content");

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

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

相關文章
相關標籤/搜索