2007年12月12日

推薦SWFObject--Flash輔助利器

轉載,出處:http://www.v-sky.com/blog/index.php/archives/172一直想為SWFObject(http://blog.deconcept.com/swfobject/)這個JS的類庫寫一個推薦帖,因為他輕便,同時功能強大,為我們的開發帶來了很大的便捷。

SWFObject(下載:SWFObject1.4)是一個基於Javascript的Flash媒體版本檢測與嵌入模塊,其主要使用目的是讓我們將FLASH嵌入網頁中的操作更簡單,加入了版本檢測功能,符合XHTML的標準驗證的插入,並解除了IE對FLASH點擊激活的限制,對主流瀏覽器兼容。

首先讓我們看一段SWFObject作用的代碼:  
程序代碼
//載入SWFObject類庫




//設置一個DIV,並設置ID,這個DIV將做為FLASH插入的容器
播放此動畫需要FlashPlayre8.0+
//利用SWFObject來插入FLASH




看了上面的代碼感覺如何?

比起平時用Object來插入FLASH文件是不是簡潔多了,而且代碼結構更清晰,對這段代碼的中文解釋可參看AW對SWFObject的翻譯,已經很詳細了,不再贅述,下面只介紹一下個人認為最實用的功能。 

一、版本檢測 難免存在播放器版本過低的用戶,而且他們大多數是低端用戶,對電腦知識瞭解較淺,如果他們看不到我們所指出的FLASH動畫,或者是由於播放器版本不支持新版本中的某些特性,用戶看到的是殘缺的動畫,那麼這就是一個糟糕的用戶體驗,用戶很容易將一切因素都歸咎於產品的開發者。實用SWFObject就可以很好的避免這一麻煩,當它檢測到用戶的播放器版本低於我們設置的版本時,FLASH不會替換DIV容器中的內容,因此我們可以在這裡給用戶提示,例如:「你需要升級FLASH播放器版本至8.0+」。如果條件允許,我們可以在這裡給用戶一個Adobe的FlashPlayer的升級鏈接或者直接提供一個Active安裝包給用戶下載安裝。

二、對FlashVars的支持
程序代碼
so.addVariable("arg1","test1"));so.addVariable("arg2","test2"));

上面兩句代碼將以FlashVars的方式給FLASH的ROOT中添加兩個變量
arg1=test1,arg2=test2,簡潔,方便,同時不用我們再考慮IE和FF的兼容問題。

注意:JS跟FLASH通信是以字符串傳遞的,因此對於Number型變量FLASH端需要做類型轉換。

三、設置FLASH內聯參數  
程序代碼
so.addParam("wmode", "transparent");這是我們很熟悉的設置FLASH背景透明的代碼,其他內聯屬性可以嘗試設置一下。

四、獲取URL中的變量對於url?arg1=test1&arg2=test2這樣用GET方式傳遞變量的URL,我們可以用getQueryParamValue方法來獲取變量。
程序代碼
var t1 = getQueryParamValue("arg1");alert(t1);

相關文章:
SWFObject 簡化宣告FLASH的HTML編碼並SEO的寫法。
SEO技巧-如何在Flash(.SWF)加關鍵字