三、用JS嵌入的方法
用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接寫,這法子說實話不大好,感覺 hack 成分多了,有點為了驗證而驗證的意思,而且沒有體現出什麼 JS 的優勢。我覺得一個好的 JS 嵌入指令碼,在保證 Flash 應有功能的基礎上,⒒?JS 的優勢應該要有版本檢測,要能很好解決可訪問性問題(也就是使用者在無法瀏覽 Flash 內容或禁用 JS 的時候應該如何處理的問題),要易於重複使用。
我知道的比較常見的 JS 嵌入方法有以下幾個:
SWFObject
UFO - Unobtrusive Flash Objects
Macomedia(現在是Adobe了..)提供的指令碼[這裡]和[這裡]。
我 用SWFObject比較多,就挑它來說一些這種方法的優點:
IE中沒有討厭的虛框問題了。
提供了完善的版本檢測功能,如果版本不夠則顯示其他東西,比片或文字。
便於使用,只要在頁面頭載入一個 .js 檔案,然後 HTML 寫一個容器,裡面放普通的文本或圖片(用於無法顯示 Flash 時顯示),最後用指令碼來替換這個元素裡面的內容為 Flash。
可以通過驗證——當然這個不是重點,只是順帶效果罷了。
四、我的結論
現階段用 JS 嵌入 Flash 是最完美的方法,雖然這法子這也是由於瀏覽器的種種問題而作出的妥協。
但它在保證 Flash 功能的前提下還利用 JS 提供了額外的好處,再者又已經有人寫了很完善的嵌入指令碼可以方面地下載使用(推薦 SWFObject),我們還有什麼理由不用它呢?
SWFObject 那網頁是英文的,這裡寫個簡單的用法教程:
下載它的.js檔案,在這裡: http://blog.deconcept.com/swfobject/swfobject1-4.zip (如果連結失效可能是版本有更新,請用上面給出的地址去首頁下載最新版本)
在你的 HTML 頁面頭部<head>區嵌入這個指令檔:<script type="text/javascript" src="swfobject.js"></script>
在你的 HTML 中寫一個用來放 Flash 的容器,比如<div>,並隨便給一個 id 比如 flashcontent。然後在裡面放上你的替換內容。
<div id="flashcontent"> 這裡放替換內容,用來在 Flash 無法顯示時顯示。 </div> |
使用指令碼替換這個內容:
<script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); //參數意思: 地址,Flash 的 id(不是容器的 id),寬,高,版本需求,背景顏色 //這是最基本的,如果你要進階的設定,就仔細翻翻說明吧。 so.write("flashcontent"); </script> |
這個指令碼可以寫在 HTML 中也可以寫在外部 .js 檔案中。