簡介
SWFObject 2.0:
提供兩種最佳化的嵌入Flash Player的方法:一種基於標籤的方法和一種依賴於JavaScript的方法。
提供一套JavaScript API,目的是提供一套完整的工具來嵌入SWF
檔案和獲得Flash Player的相關信息。[ http:// code. google. com/p/swfobject/wiki/SWFObject_2_0_api_javascript_dev ]
只利用一個很小的JavaScript檔案(size: 8.7Kb, GZIPed: 3.4Kb)。
是SWFObject 1.5[ http:// blog. deconcept. com/swfobject/ ]和UFO [ http://www. bobbyvandersluis. com/ufo/ ]的繼承者。
將最終替代Adobe Flash Player Detection Kit [ http://www. adobe. com/products/flashplayer/download/detection_kit/ ]。
準備整合所有已存在的Flash Player嵌入方法,並且為嵌入Adobe Flash Player內容提供一個新的標準。
是一個由Geoff Stearns、 Michael Williams和 Bobby van der Sluis創建的開源項目,前身是SWFFix [ http://code. google. com/p/swffix/ ]。
特點
SWFObject 2.0:
比任何其他的Flash Player嵌入方法更完善更靈活。
為每個人都提供了一種解決方案:無論你是一個HTML、Flash或者JavaScript開發者,你都能從中發現適合你的東西。
打破了使用瀏覽器專有標籤的惡性循環,促進了web標準和替換內容(譯者註:alternative content,指Flash內容無法正常顯示時需要顯示的內容,使用替換內容通常是因為Flash外掛程式沒有安裝或者Flash外掛程式版本過低)的使用。
採用分離式的(unobtrusive)JavaScript和最合理的JavaScript實踐。
容易使用。
一篇A List Apart上的文章Flash Embedding Cage Match描述了SWFObject 2.0背後的所有原理。
JavaScript
SWFObject 2.0主要使用JavaScript來解決一些僅依靠標籤無法解決的問題;它:
通過探測Flash Player的版本,來決定顯示Flash內容還是替換內容,避免了過時的Flash外掛程式影響Flash內容的正常顯示。
提供了恢復到替換內容的功能:當Flash內容因為過時的Flash Player而無法正常顯示時,SWFObject通過DOM操作用替換內容代替Flash內容。(注意:如果Flash Player沒有被安裝,HTML object元素會自動被替換內容所替代。)
提供了一個選擇來使用Adobe Express Install下載最新版本的Flash Player。
通過使用專有的embed元素的辦法,解決了老版的Webkit引擎會忽略嵌套在object元素中的param元素的問題。(注意:這是唯一一個使用了專有HTML標籤的地方,並且在今後的版本中會被逐步淘汰。)
提供了一個詳盡的JavaScript API來完成一些常見的與Flash Player和Flash內容相關的操作。
4 . 我們應該使用靜態發表還是動態發表的方法?
SWFObject提供了兩種不同的方法來嵌入Flash內容:
靜態發表方法用符合標準的標籤來嵌入Flash內容和替換內容,並且用JavaScript來解決一些僅依靠標籤無法解決的問題。
動態發表方法基於用標準標籤插入替換內容,如果瀏覽器安裝了最低版本需求的Flash外掛程式並且擁有足夠的JavaScript支持,SWFObject會用JavaScript將替換內容替換成Flash內容(與以前版本的SWFObject以及UFO很相似)。
靜態發表方法的優勢在於:
促進了對符合標準標籤的創作。(譯者註:不太理解,原文是:The actual authoring of standards compliant markup is promoted.)
插入Flash內容的機制不再依賴於JavaScript,所以你的Flash內容能有更多的客群。
如果你安裝了Flash外掛程式,但是JavaScript被禁用了或者瀏覽器並不支持JavaScript,你仍然能夠看到你的Flash內容。
Flash將能夠在那些對JavaScript支持較弱的設備上運行,例如Sony PSP。
像RSS閱讀器這樣的自動化的工具能夠讀取Flash內容。
動態發表方法的優勢在於:
它避免了通過點擊激活的機制來激活Internet Explorer 6/7和Opera 9+中的Flash內容。值得注意的是微軟正在逐步淘汰IE中的點擊激活機制[ http://www. swffix. org/devblog/?p=19 ]。(譯者註:Internet Explorer 6/7的點擊激活機制已經在2008/4的更新中被移除)
它能很好的與基於腳本的套用整合。