在網(wǎng)頁中怎樣給已發(fā)布的Flash添加鏈接的方法
更新時(shí)間:2007年03月20日 00:00:00 作者:
說到這個(gè)問題,可能有人就會說,那還不簡單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對應(yīng)的鏈結(jié)還沒有確定或者以后會變更怎么辦?
解決思路:
因?yàn)榫W(wǎng)頁中的 Flash 是以控件形式出現(xiàn)的,優(yōu)先級別較高,所以直接對它加鏈接是無效的,不過可以用按鈕控件 BUTTON 來實(shí)現(xiàn)。
具體步驟
1.直接在按鈕上加上onClick事件打開指定頁面:
<button style="width:225;height:76;border:none;background:transparent"
onClick="window.open('http://www.flash8.net','_blank')" hidefocus>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="225" height="76">
<param name="movie"
value="http://www.flash8.net/images/head/bbs.swf">
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.net/images/head/bbs.swf"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="225" height="76" wmode="Opaque"></embed>
</object>
</button>
2.方法1中的代碼運(yùn)行后單擊按鈕時(shí),按鈕中的Flash有個(gè)下沉的動(dòng)作,如果要取消這個(gè)動(dòng)作,可以禁止按鈕的交互性,然后用標(biāo)準(zhǔn)的A標(biāo)簽做鏈接,代碼如下:
<a >
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="225" height="76">
<param name="movie"
value="http://www.flash8.net/images/head/bbs.swf">
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.net/images/head/bbs.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="225" height="76" wmode="Opaque"></embed>
</object>
</button>
</a>
注意:必須設(shè)置 Flash 對象的 wmode 屬性值為 Opaque。
技巧:方法1中代碼第二行的_blank參數(shù)可以去掉或者修改為_self讓鏈接在當(dāng)前窗口打開。
特別提示
代碼運(yùn)行后,在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對象渲染為一個(gè)按鈕,這樣就可以通過設(shè)置BUTTON對象的樣式或事件來解決問題。
http://fzlshop.com 菜單
第二種方法:
說到這個(gè)問題,可能有人就會說,那還不簡單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對應(yīng)的鏈結(jié)還沒有確定或者以后會變更怎么辦?我需要的是能夠在外部修改flash對應(yīng)的鏈結(jié)。
那直接在flash所在的object元素外部加<a></a>標(biāo)簽來控制不就行了,可能有些人會這么想,思路正確,但是行不通。呵呵,怎么辦?百度一下先,呵呵,真是相當(dāng)佩服某些人的牛腦,真牛,下面是一種解決的方法:
首先,我們肯定是要先插入FLASH.因?yàn)?Flash默認(rèn)是最高層.所以, 我經(jīng)常會遇見Flash把下拉菜單擋住的情況.
把Flash文件放到一個(gè)層中,設(shè)為最底層,FLASH設(shè)為透明.
<div style="z-index:-1"> <!--1.設(shè)置FLASH為底層-->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="200" height="115">
<param name="movie" value="media.swf">
<param name="quality" value="high">
<embed src="media.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="200"
height="115"></embed>
<param name="wmode" value="transparent">
<!--2.必須把FLASH設(shè)置為透明-->
</object> </div>
再接下來,就是在FLASH的層上再加上一層,
Flash本身不能直接加入onclick.等事件,所以,只能借助別的東西啦. 就是在FLASH上加個(gè)透明層,
<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.dbjr.com.cn">
<img src="kong.gif" width="200" height="115"
border="0"></a></div>
論壇上面,給了一些解決方法,就是加個(gè)透明的層,但是,如果光有個(gè)透明層, 還是不能接受事件的.
更確切地說,是一部分可以,一部分不可以,和FLASH部分重疊的那一部分不行.
為什么不行.說實(shí)話,我也不清楚,我是試驗(yàn)得出來的...
當(dāng)我把這個(gè)層的背景顏色設(shè)為任意一種時(shí),不是透明時(shí),發(fā)現(xiàn).可以接受事件了,在層上加了個(gè)
超連接,也可以.. 但是,這還不是我們要的結(jié)果.因?yàn)?把整個(gè)"精美"的FLASH給遮蓋了.. 所以,有<img
src="kong.gif" width="200" height="115" border="0">
我用PhotoShop做了個(gè)透明的圖片kong.gif
大小都可以,但是必須是透明的!這樣才不至于把底下的FLASH給遮蓋住了.
試驗(yàn)了一下... 成功了... 點(diǎn)擊FLASH.其實(shí)是擊中了FLASH上層的透明圖片kong.gif
圖片,就可以接受很多事件啦,onclick , onmouseover ,onmosueout ......
給圖片加個(gè)<a></a>超連接是再簡單不過的事啦.. 這時(shí),以上的問題是不是都解決了,把事件都給kong.gif接受!
單擊事件, <div onclick="ok()" id="huiLayer" ...........
不管是坐火車,還是飛飛機(jī),過年都得回家,所以方法還是有的,F(xiàn)lash本身還提供了一種方法,相當(dāng)?shù)暮糜茫褪窃贔lash內(nèi)部通過FSCommand調(diào)用外部的腳本,個(gè)人認(rèn)為這種方法簡單實(shí)用,可控能力強(qiáng),具體用法,就不在這里多說了,你在網(wǎng)上搜FSCommand關(guān)鍵鍵字就會啊到很多實(shí)例,不過還是有一點(diǎn)提示:在提供javascript版本的調(diào)用方法時(shí),最好也提供一個(gè)vbscript的版本,否則調(diào)用可能會不成功。
因?yàn)榫W(wǎng)頁中的 Flash 是以控件形式出現(xiàn)的,優(yōu)先級別較高,所以直接對它加鏈接是無效的,不過可以用按鈕控件 BUTTON 來實(shí)現(xiàn)。
具體步驟
1.直接在按鈕上加上onClick事件打開指定頁面:
<button style="width:225;height:76;border:none;background:transparent"
onClick="window.open('http://www.flash8.net','_blank')" hidefocus>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="225" height="76">
<param name="movie"
value="http://www.flash8.net/images/head/bbs.swf">
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.net/images/head/bbs.swf"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="225" height="76" wmode="Opaque"></embed>
</object>
</button>
2.方法1中的代碼運(yùn)行后單擊按鈕時(shí),按鈕中的Flash有個(gè)下沉的動(dòng)作,如果要取消這個(gè)動(dòng)作,可以禁止按鈕的交互性,然后用標(biāo)準(zhǔn)的A標(biāo)簽做鏈接,代碼如下:
<a >
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="225" height="76">
<param name="movie"
value="http://www.flash8.net/images/head/bbs.swf">
<param name="wmode" value="Opaque">
<param name="quality" value="high">
<embed src="http://www.flash8.net/images/head/bbs.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="225" height="76" wmode="Opaque"></embed>
</object>
</button>
</a>
注意:必須設(shè)置 Flash 對象的 wmode 屬性值為 Opaque。
技巧:方法1中代碼第二行的_blank參數(shù)可以去掉或者修改為_self讓鏈接在當(dāng)前窗口打開。
特別提示
代碼運(yùn)行后,在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對象渲染為一個(gè)按鈕,這樣就可以通過設(shè)置BUTTON對象的樣式或事件來解決問題。
http://fzlshop.com 菜單
第二種方法:
說到這個(gè)問題,可能有人就會說,那還不簡單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對應(yīng)的鏈結(jié)還沒有確定或者以后會變更怎么辦?我需要的是能夠在外部修改flash對應(yīng)的鏈結(jié)。
那直接在flash所在的object元素外部加<a></a>標(biāo)簽來控制不就行了,可能有些人會這么想,思路正確,但是行不通。呵呵,怎么辦?百度一下先,呵呵,真是相當(dāng)佩服某些人的牛腦,真牛,下面是一種解決的方法:
首先,我們肯定是要先插入FLASH.因?yàn)?Flash默認(rèn)是最高層.所以, 我經(jīng)常會遇見Flash把下拉菜單擋住的情況.
把Flash文件放到一個(gè)層中,設(shè)為最底層,FLASH設(shè)為透明.
復(fù)制代碼 代碼如下:
<div style="z-index:-1"> <!--1.設(shè)置FLASH為底層-->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="200" height="115">
<param name="movie" value="media.swf">
<param name="quality" value="high">
<embed src="media.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="200"
height="115"></embed>
<param name="wmode" value="transparent">
<!--2.必須把FLASH設(shè)置為透明-->
</object> </div>
再接下來,就是在FLASH的層上再加上一層,
Flash本身不能直接加入onclick.等事件,所以,只能借助別的東西啦. 就是在FLASH上加個(gè)透明層,
復(fù)制代碼 代碼如下:
<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.dbjr.com.cn">
<img src="kong.gif" width="200" height="115"
border="0"></a></div>
論壇上面,給了一些解決方法,就是加個(gè)透明的層,但是,如果光有個(gè)透明層, 還是不能接受事件的.
更確切地說,是一部分可以,一部分不可以,和FLASH部分重疊的那一部分不行.
為什么不行.說實(shí)話,我也不清楚,我是試驗(yàn)得出來的...
當(dāng)我把這個(gè)層的背景顏色設(shè)為任意一種時(shí),不是透明時(shí),發(fā)現(xiàn).可以接受事件了,在層上加了個(gè)
超連接,也可以.. 但是,這還不是我們要的結(jié)果.因?yàn)?把整個(gè)"精美"的FLASH給遮蓋了.. 所以,有<img
src="kong.gif" width="200" height="115" border="0">
我用PhotoShop做了個(gè)透明的圖片kong.gif
大小都可以,但是必須是透明的!這樣才不至于把底下的FLASH給遮蓋住了.
試驗(yàn)了一下... 成功了... 點(diǎn)擊FLASH.其實(shí)是擊中了FLASH上層的透明圖片kong.gif
圖片,就可以接受很多事件啦,onclick , onmouseover ,onmosueout ......
給圖片加個(gè)<a></a>超連接是再簡單不過的事啦.. 這時(shí),以上的問題是不是都解決了,把事件都給kong.gif接受!
單擊事件, <div onclick="ok()" id="huiLayer" ...........
不管是坐火車,還是飛飛機(jī),過年都得回家,所以方法還是有的,F(xiàn)lash本身還提供了一種方法,相當(dāng)?shù)暮糜茫褪窃贔lash內(nèi)部通過FSCommand調(diào)用外部的腳本,個(gè)人認(rèn)為這種方法簡單實(shí)用,可控能力強(qiáng),具體用法,就不在這里多說了,你在網(wǎng)上搜FSCommand關(guān)鍵鍵字就會啊到很多實(shí)例,不過還是有一點(diǎn)提示:在提供javascript版本的調(diào)用方法時(shí),最好也提供一個(gè)vbscript的版本,否則調(diào)用可能會不成功。
相關(guān)文章
非常不錯(cuò)的Flash緩動(dòng)廣告導(dǎo)航
非常不錯(cuò)的Flash緩動(dòng)廣告導(dǎo)航...2007-01-01碩思閃客精靈 Sothink SWF Decompiler V3.3 漢化綠色破解版
一款用于瀏覽和解析Flash動(dòng)畫(.swf文件和.exe文件)的 工具。2006-12-12ActionScript3禁止構(gòu)造請求標(biāo)頭Referer
ActionScript3禁止構(gòu)造請求標(biāo)頭Referer...2007-03-03