首頁 >web前端 >html教學 >flash嵌入html 在html網頁程式碼中嵌入Flash檔案的解決方案(下)_HTML/Xhtml_網頁製作

flash嵌入html 在html網頁程式碼中嵌入Flash檔案的解決方案(下)_HTML/Xhtml_網頁製作

WBOY
WBOY原創
2016-05-16 16:40:321511瀏覽

關於我的SWFObject V1.5的使用過程,以上篇中的介紹暫時告一段落了,下面我將會帶領SWFObject V2.1出場與大家見面,如果我早一點結識V2.1的話,或許就不會受到「等待HTML DOM載入」問題的侵擾了。

首先,給大家簡要介紹一下V2.1語法的調用示例:

複製代碼
程式碼如下:





從我個人來講,我比較喜歡上面的第三種寫法,下面即將提到,我在HTML程式碼中嵌入Flash檔案的最終解決方案中,就是採取的第三種風格呼叫的swfobject.embedSWF()。 V2.1版本的風格非常符合現代JS的風格,程式碼顯得更簡潔。
上篇中採取的解決方案看來,似乎已經能夠滿足大部分需求,而且兼容性似乎也還過得去,理應能夠滿足絕多數朋友的需求,也未嘗不可是一個過得去的解決方案。但是,有一個比較極端的情況被我發現,就是在:



複製代碼
代碼如下:
代碼如下:


new SWFObject("http://www.pec365.com/Flash/20071113.swf", "mymovie", "304", "367", "7", "#FFFFFF");


的時候,如果傳入的Flash檔案的位址有誤,又或者該Flash檔案在伺服器中被刪除掉了,那麼你將看到一種最不願意看到的情況,範例
如下:
複製程式碼
程式碼如下:



程式碼如下:


DEMO












建議您親自執行一下這段程式碼,如果您是一名新手可參見上篇中說介紹的步驟來運行一下這段程式碼,真實的感受一下「災難」的降臨。

是的,您將看到頁面上一片空白,那原本用於替換不能顯示Flash時備用的圖片也不見了,去了哪裡呢?我經過調試後發現,縱使因為傳入的Flash檔案位址錯誤,也會建立一個錯誤的標籤將
[……]
中的內容替換掉,從而就是你看到的,將形成一個高寬分別為304px和367px的空白區域(如果安裝了Flash播放器,在屏幕左上角點擊鼠標右鍵,您會有所發現),於是噩夢就如此降臨了。

為了解決這個噩夢般的結果,於是乎,我就想到一個餿主意,首先檢查一下根據傳入的Flash文件地址檢查一下伺服器上是否真的存在該文件,如果返回的結果是該Flash檔案存在,那麼就執行swfobject.embedSWF()方法,而具體的思路就是利用XMLHttpRequest 對象,透過GET/HEAD方式請求伺服器,然後判斷xmlHttp.status == 200 || xmlHttp.status == 302作為文件存在的依據,但是這種方式似乎還是存在一定的缺陷,暫時我還沒有能力完善,現將我最終的解決方案示例如下:

複製代碼
代碼如下:


DEMO









哇,花了數小時在把這兩篇文字折騰好,不小心在公司呆到快22點了,保安來趕人了,想草草收場吧,明天上班得空再來雕琢一下文字,呵呵。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn