SWFObject Flash js調(diào)用類
更新時間:2008年07月08日 10:24:49 作者:
一直想為 SWFObject 這個JS的類庫寫一個推薦帖,因為他輕便,同時功能強大,為我們的開發(fā)帶來了很大的便捷。
SWFObject是一個基于Javascript的Flash媒體版本檢測與嵌入模塊,其主要使用目的是讓我們將FLASH嵌入網(wǎng)頁中的操作更簡單,加入了版本檢測功能,符合XHTML的標準驗證的插入,并解除了IE對FLASH點擊激活的限制,對主流瀏覽器兼容。
首先讓我們看一段SWFObject作用的代碼:
//載入SWFObject類庫
<script type="text/javascript" src="swfobject.js" src="swfobject.js"></script>
//設置一個DIV,并設置ID,這個DIV將做為FLASH插入的容器
<div id="flashcontent">播放此動畫需要FlashPlayre8.0+ </div>
//利用SWFObject來插入FLASH
<script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//將id為flashcontent的DIV中內(nèi)容替換為FLASH
so.write("flashcontent");
</script>
看了上面的代碼感覺如何?比起平時用Object來插入FLASH文件是不是簡潔多了,而且代碼結(jié)構(gòu)更清晰,對這段代碼的中文解釋可參看AW對SWFObject的翻譯,已經(jīng)很詳細了,不再贅述,下面只介紹一下個人認為最實用的功能。
一、版本檢測
難免存在播放器版本過低的用戶,而且他們大多數(shù)是低端用戶,對電腦知識了解較淺,如果他們看不到我們所指出的FLASH動畫,或者是由于播放器版本不支持新版本中的某些特性,用戶看到的是殘缺的動畫,那么這就是一個糟糕的用戶體驗,用戶很容易將一切因素都歸咎于產(chǎn)品的開發(fā)者。實用SWFObject就可以很好的避免這一麻煩,當它檢測到用戶的播放器版本低于我們設置的版本時,F(xiàn)LASH不會替換DIV容器中的內(nèi)容,因此我們可以在這里給用戶提示,例如:“你需要升級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端需要做類型轉(zhuǎn)換。
三、設置FLASH內(nèi)聯(lián)參數(shù)
so.addParam("wmode", "transparent");
這是我們很熟悉的設置FLASH背景透明的代碼,其他內(nèi)聯(lián)屬性可以嘗試設置一下。
四、獲取URL中的變量
對于url?arg1=test1&arg2=test2這樣用GET方式傳遞變量的URL,我們可以用getQueryParamValue方法來獲取變量。
var t1 = getQueryParamValue("arg1");
alert(t1);
官方地址:http://blog.deconcept.com/swfobject/
首先讓我們看一段SWFObject作用的代碼:
//載入SWFObject類庫
<script type="text/javascript" src="swfobject.js" src="swfobject.js"></script>
//設置一個DIV,并設置ID,這個DIV將做為FLASH插入的容器
<div id="flashcontent">播放此動畫需要FlashPlayre8.0+ </div>
//利用SWFObject來插入FLASH
<script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//將id為flashcontent的DIV中內(nèi)容替換為FLASH
so.write("flashcontent");
</script>
看了上面的代碼感覺如何?比起平時用Object來插入FLASH文件是不是簡潔多了,而且代碼結(jié)構(gòu)更清晰,對這段代碼的中文解釋可參看AW對SWFObject的翻譯,已經(jīng)很詳細了,不再贅述,下面只介紹一下個人認為最實用的功能。
一、版本檢測
難免存在播放器版本過低的用戶,而且他們大多數(shù)是低端用戶,對電腦知識了解較淺,如果他們看不到我們所指出的FLASH動畫,或者是由于播放器版本不支持新版本中的某些特性,用戶看到的是殘缺的動畫,那么這就是一個糟糕的用戶體驗,用戶很容易將一切因素都歸咎于產(chǎn)品的開發(fā)者。實用SWFObject就可以很好的避免這一麻煩,當它檢測到用戶的播放器版本低于我們設置的版本時,F(xiàn)LASH不會替換DIV容器中的內(nèi)容,因此我們可以在這里給用戶提示,例如:“你需要升級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端需要做類型轉(zhuǎn)換。
三、設置FLASH內(nèi)聯(lián)參數(shù)
so.addParam("wmode", "transparent");
這是我們很熟悉的設置FLASH背景透明的代碼,其他內(nèi)聯(lián)屬性可以嘗試設置一下。
四、獲取URL中的變量
對于url?arg1=test1&arg2=test2這樣用GET方式傳遞變量的URL,我們可以用getQueryParamValue方法來獲取變量。
var t1 = getQueryParamValue("arg1");
alert(t1);
官方地址:http://blog.deconcept.com/swfobject/
相關(guān)文章
JS正則RegExp.test()使用注意事項(不具有重復性)
這篇文章主要介紹了JS正則RegExp.test()使用注意事項,結(jié)合實例形式分析了RegExp.test()方法的功能與用法,以及針對不能重復調(diào)用的解決方法,需要的朋友可以參考下2016-12-12setinterval()與clearInterval()JS函數(shù)的調(diào)用方法
這篇文章主要介紹了setinterval()與clearInterval()JS函數(shù)的調(diào)用方法,實例分析了setinterval()與clearInterval()的語法結(jié)構(gòu)及使用技巧,需要的朋友可以參考下2015-01-01Three.js實現(xiàn)瀏覽器變動時進行自適應的方法
這篇文章主要給大家介紹了關(guān)于Three.js實現(xiàn)瀏覽器變動時進行自適應的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2017-09-09JS 中LocalStorage和SessionStorage的使用
最近因為項目上需要使用到客戶端存儲,所以稍微研究了一下,以下說說自己的理解和使用經(jīng)驗,特此分享到腳本之家平臺,感興趣的朋友參考下吧2017-08-08