2011-08-09 20:08:13
說到這個問題,可能有人就會說,那還不簡單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計完flash,但flash對應(yīng)的鏈結(jié)還沒有確定或者以后會變更怎么辦?我需要的是能夠在外部修改flash對應(yīng)的鏈結(jié)。
那直接在flash所在的object元素外部加<a></a>標(biāo)簽來控制不就行了,可能有些人會這么想,思路正確,但是行不通。呵呵,怎么辦?百度一下先,呵呵,真是相當(dāng)佩服某些人的牛腦,真牛,下面是一種解決的方法:
首先,我們肯定是要先插入FLASH.因為,Flash默認(rèn)是最高層.所以, 我經(jīng)常會遇見Flash把下拉菜單擋住的情況.
把Flash文件放到一個層中,設(shè)為最底層,FLASH設(shè)為透明.
<div style="z-index:-1"> <!--1.設(shè)置FLASH為底層-->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macr
width="200" height="115">
<param name="movie" value="media.swf">
<param name="quality" value="high">
<embed src="media.swf" quality="high"
pluginspage="http://www.macromedi
type="application/x-shockwave-flash" width="200"
height="115"></embed>
<param name="wmode" value="transparent">
<!--2.必須把FLASH設(shè)置為透明-->
</object> </div>
再接下來,就是在FLASH的層上再加上一層,
Flash本身不能直接加入onclick.等事件,所以,只能借助別的東西啦. 就是在FLASH上加個透明層,
<div id="huiLayer" style="cursor: hand; position:absolute;
left:10px; top:10px; width:200px; height:115px; z-index:1;
visibility: visible;"><a href="http://www.cnlk.com">
<img src="kong.gif" width="200" height="115"
border="0"></a></div>
論壇上面,給了一些解決方法,就是加個透明的層,但是,如果光有個透明層, 還是不能接受事件的.
更確切地說,是一部分可以,一部分不可以,和FLASH部分重疊的那一部分不行.
為什么不行.說實話,我也不清楚,我是試驗得出來的...
當(dāng)我把這個層的背景顏色設(shè)為任意一種時,不是透明時,發(fā)現(xiàn).可以接受事件了,在層上加了個
超連接,也可以.. 但是,這還不是我們要的結(jié)果.因為,把整個"精美"的FLASH給遮蓋了.. 所以,有<img
src="kong.gif" width="200" height="115" border="0">
我用PhotoShop做了個透明的圖片kong.gif
大小都可以,但是必須是透明的!這樣才不至于把底下的FLASH給遮蓋住了.
試驗了一下... 成功了... 點擊FLASH.其實是擊中了FLASH上層的透明圖片kong.gif
圖片,就可以接受很多事件啦,onclick , onmouseover ,onmosueout ......
給圖片加個<a></a>超連接是再簡單不過的事啦.. 這時,以上的問題是不是都解決了,把事件都給kong.gif接受!
單擊事件, <div onclick="ok()" id="huiLayer" ...........
不管是坐火車,還是飛飛機,過年都得回家,所以方法還是有的,F(xiàn)lash本身還提供了一種方法,相當(dāng)?shù)暮糜?,就是在Flash內(nèi)部通過FSCommand調(diào)用外部的腳本,個人認(rèn)為這種方法簡單實用,可控能力強,具體用法,就不在這里多說了,你在網(wǎng)上搜FSCommand關(guān)鍵鍵字就會啊到很多實例,不過還是有一點提示:在提供javascript版本的調(diào)用方法時,最好也提供一個vbscript的版本,否則調(diào)用可能會不成功。
++++++++++++++++++++++++++++++++++++++++++++++++
你這方法真猥瑣??次业?
解決思路:
因為網(wǎng)頁中的 Flash 是以控件形式出現(xiàn)的,優(yōu)先級別較高,所以直接對它加鏈接是無效的,不過可以用按鈕控件 BUTTON 來實現(xiàn)。
具體步驟
1.直接在按鈕上加上onClick事件打開指定頁面:
<button style="width:225;height:76;border:none;background:transparent"
onClick="window.open('http://www.flash8.ne
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macr
<param name="movie"
value="http://www.flash8.ne
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.ne
quality="high"
pluginspage="http://www.macromedi
</object>
</button>
2.方法1中的代碼運行后單擊按鈕時,按鈕中的Flash有個下沉的動作,如果要取消這個動作,可以禁止按鈕的交互性,然后用標(biāo)準(zhǔn)的A標(biāo)簽做鏈接,代碼如下:
<a href="http://www.flash8.co
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macr
<param name="movie"
value="http://www.flash8.ne
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.ne
pluginspage="http://www.macromedi
</object>
</button>
</a>
注意:必須設(shè)置 Flash 對象的 wmode 屬性值為 Opaque。
技巧:方法1中代碼第二行的_blank參數(shù)可以去掉或者修改為_self讓鏈接在當(dāng)前窗口打開。
特別提示
代碼運行后,在Flash上單擊,將打開代碼中指定的URL(圖5.1.9)。
圖5.1.8 給Flash添加鏈接功能
特別說明
本例問題的解決,主要是利用Flash對象的wmode屬性和BUTTON標(biāo)簽的特性。設(shè)置Flash對象的wmode屬性值為opaque,是為了降低Flash對象的優(yōu)先級,然后利用BUTTON標(biāo)簽把Flash對象渲染為一個按鈕,這樣就可以通過設(shè)置BUTTON對象的樣式或事件來解決問題。