首頁 >web前端 >html教學 >使用SWFObject完美解決HTML插入Flash的各瀏覽器相容性方案_HTML/Xhtml_網頁製作

使用SWFObject完美解決HTML插入Flash的各瀏覽器相容性方案_HTML/Xhtml_網頁製作

WBOY
WBOY原創
2016-05-16 16:37:311593瀏覽

下面我們來共同學習

一、傳統的方法


複製程式碼
程式碼如下:

http ://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"寬度=“550”高度=“400”id=“Untitled- 1”對齊=“中間”>




http://www.macromedia.com/go/getflashplayer一個>」 >>
物件>

這個方法是使用object和embed標籤來嵌入,細心的會發現,object的很多參數和embed裡面的很多屬性是重複的,為什麼要這樣做?為了瀏覽器相容,有的瀏覽器支援object,有的支援嵌入,這也是為什麼要修改Flash的參數時兩個地方都要改的原因。

這種方法是Macromedia一直以來的官方方法,最大限度的保證了Flash的功能,沒有相容性問題。但現在不太好用了:無法通過驗證,由於相容性而嵌入的嵌入標籤是不符合W3C的規範的。當然,如果你忽略什麼規範不規範,另當別論。

微軟由於上述原因,在sp2後限制了IE的ActiveX的使用模式,就是在頁面中的ActiveX有一個虛框,需要用戶點擊一次才能正常互動。 Flash是作為一個ActiveX嵌入到網頁中的,所以它也可以被牽連,只有透過 JS 嵌入 Flash 才能解決這個問題。

沒有Flash版本檢測,如果版本瀏覽器的flash插件版本不夠,無法正常顯示你的或者swf文件,或者會彈出一個ActiveX的確認安裝的框——這個框對很多用戶來說是很恐怖的。

二、用JS嵌入的方法

用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用document.write直接寫,這個法子說不太好,感覺hack成分多了,有點為了驗證而驗證的意思,並且沒有體現出什麼JS的優勢。我覺得一個好的JS要嵌入腳本,在保證Flash應有功能的基礎上,要發揮JS的優勢應該震動版本檢測,能很好解決可訪問性問題(用戶在無法瀏覽Flash 內容或禁用JS 的時候應該如何處理的問題),要易於重複使用。

我們在這裡要講的是SWFObject這個解決方案:

「SWFObject」是利用Javascript插入flash,好處多多,程式碼簡潔,不會出現IE6下的「按一下此處即可啟動控制項」的提示,並且可以透過W3C驗證。相反傳統的“object”插入flash的方法。

SWFObject 在新的 2.x 版本中,其最簡單的呼叫竟是一個詞語,並且不需要頁面等待載入完成,這意味著你可以將這些字詞寫在頁面的任何位置。的版本,要簡單多了。下面看幾個簡單常用的呼叫方法:

1、最簡單,懇求,只要想插入flash發揮作用的經典名言。


複製程式碼
程式碼如下:



註解:呼叫方法embedSWF-插入SWF文件,參數依序是@swf文件的位址;@用於裝入swf文件的容器(如div)的id;@flash的寬度;@flash的高度(當然,這裡的寬高都可以使用諸如100%這樣的百分比來表示);@正常播放該flash所需的最低版本;@當版本低於要求時,執行該swf文件,這裡利用這個flash跳到官方下載最新版本的flash插件。 (這個參數可以省略)在同一個頁面插入多個flash到不同位置時,只要重複上面的語句,使用不同的容器id就可以了。

2、給swf檔傳遞參數、變數、屬性的呼叫方法


複製程式碼
程式碼如下:


params.menu = "false"; var attributes = {};

attributes.id = "dynamicContent3"; swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attritries ; //3、直接寫在後面,就一句話,簡潔剽悍,不拖泥帶水
swfobject.embedSWF("test6_flashvars.swf", "content5", "300", "120", "6.0. 0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"} );
SWFObject 2.0 官方文件(中文) http://www.jb51.net/books/175630.html

github: github: :github: : //github.com/swfobject/swfobject.
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn