今天的工作重點幾乎都放在這個題目上面了。因為主管希望flash的容量盡量少,所以不讓我在里面放按鈕,可是有要我在網頁里面放,在同一個地方。。。
試了好久,發現搜索的關鍵詞句用錯了,兩個div層很容易就把它們重疊在一起了,但當其中一個放的是flash時,卻發現無論怎么弄都是flash在上面,擋住了我要顯示的字。在經歷無數次的失敗之后,終于找到了一個成功幫了我的方法,以下是我轉載過來的,收藏起來~~
在公司主頁上放了一個浮動廣告式的Online Support,是一個浮動層,可是在浮動到Flash上時,就會被Flash擋住,該死,無論我怎么設置Z軸都是在Flash這下,看來還是Flash動畫招人喜歡啊,哈哈。
看來在CSS上是找不到什么出路了,看看Flash吧。在DW8中,對Flash的參數提供還是太少,還不如以前的FrontPage,又記不起來Flash層控制的參數了,搜吧。
功夫不負有心人,終于找到了,設“wmode”的值為“Opaque”,表示將Flash置于最底層。
點到Flash上,屬性,點參數,再點那個加號添加參數“wmode”的值為“Opaque”,OK,搞定。
現在我的圖片可以隨便飄啦,哈哈。
試了一下,還有一種方法也可以實現,就是將Flash設為透明顯示,也不會擋住浮動的層。
條件1.只適用于IE 4.0 或以上版本.
條件2.flash 和其他元素在不同的layers里,且Flash所在的層的z-index較低。
條件3.Flash 必須設定為背景透明。(wmode= transparent).
以上三項缺一不可。
<div style="z-index:-1">
<embed name="Movie1" src="1221.swf" quality="high"
width=500 height=400 wmode="transparent"
type="application/x-shockwave-flash">
</embed>
</div>
<div id="jnkcLayer" style="position:absolute; left:150px; top:100px; width:200px; height:200px; z-index:1; background-color: #009966; layer-background-color: #009966; border: 1px none #000000; visibility: visible"></div>
慎用wmode屬性的Opaque參數
在制作Chat Union系統時,有一個功能暫時不打算使用Flash實現,但這個功能又必須出現在Flash中。因此考慮使用一個 <div>,讓其漂浮在Flash動畫上方,提供這個暫時不用Flash實現的功能。
但是默認情況下,Flash影片是處于最上層的,無法將 <div>置于其上。查閱Flash的幫助文件,發現這樣一段描述:
wmode 屬性/參數
值
Window | Opaque | Transparent
模板變量:$WM
說明
(可選)使您可以使用 Internet Explorer 4.0 中的透明 Flash 內容、絕對定位和分層顯示的功能。此標記/屬性僅在帶有 Flash Player ActiveX 控件的 Windows 中有效。
“Window”在 Web 頁上用影片自己的矩形窗口來播放應用程序。“Window”表明 Flash 應用程序與 HTML 層沒有任何交互,并且始終位于最頂層。
“Opaque” 使應用程序隱藏頁面上位于它后面的所有內容。
“Transparent”使 HTML 頁的背景可以透過應用程序的所有透明部分進行顯示,這樣可能會降低動畫性能。
“Opaque windowless”和“Transparent windowless” 都可與 HTML 層交互,并允許 SWF 文件上方的層遮蔽應用程序。這兩種選項之間的差異在于“Transparent”允許透明,因此,如果 SWF 文件的某一部分是透明的,則 SWF 文件下方的 HTML 層可以透過該部分顯示出來。
如果忽略此屬性,默認值為 Window。僅適用于 object。
因此,在HTML中將 <object> 的wmode參數設成這樣:
<param name="wmode" value="Opaque">
然后將一個HTML的 <div>置于Flash影片之上,測試成功。
但是,問題隨之出現。許多客人在聊天室中打字的時候發現,輸入法的選字框會跑到頁面的左上角,而且會影響網頁的排版,將Flash影片擠到下面。有時甚至無法將文字輸入到Flash中。為了還原錯誤,我使用了多款輸入法,發現微軟的所有輸入法都有這個問題。因為微軟輸入法在選字的時候都有一個虛線選擇,我懷疑是這個虛線選擇功能出現問題所致。
可是,不能單單懷疑微軟輸入法的兼容性不好。因為,同樣的程序,在昨天就沒有出現這個情況。和開發伙伴測試了其他輸入法,發現智能ABC輸入法也存在這個問題,只是在我的計算機上沒有出現。
開始懷疑加入的 <div>,將其屏蔽,問題仍然存在。
繼續懷疑到wmode屬性的頭上。刪除 < param name=”wmode” value=”Opaque” > 語句,問題消失。
仔細思考,因為“Opaque” 使應用程序隱藏頁面上位于它后面的所有內容,也就是說使用了這個參數之后,在網頁中不是Flash位于最上而是
位于最上了,某些輸入法會將焦點設定為網頁中位于最上的對象(也就是 <div>中)。而這個 <div>又是使用絕對定位“漂浮”在網頁上的,這就造成了輸入法的選字框定位不準確,也就發生了剛才的問題了。
從幫助文件中看來,使用“Opaque windowless”參數應該會好一些,不過,我們實在不愿意再試
用了上面的方法后我用IE一測試就發現行了,成功了。可是我們主管很強調兼容的問題,所以我每做一個任務都要在IE和FF里分別看是不是符合要求。結果~~~在FireFox里面竟然沒反應啊~!!!!我郁悶啊。。。于是耗了好長好長好長好長的時間。。。。后來連全英的網站都看了。。。終于發現。。。是自己太蠢了。。。只改了tag那里的屬性,卻沒有在embed那里也加上這個屬性的修改。。。
一加上以后…………可以了……IE和FF都可以看到和用到那些字和超鏈接了……汗死……任務完成……
http://hi.baidu.com/00fei/blog/item/1cd8a5005463c805728da531.html
名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
mail: 聯系我