在網(wǎng)頁(yè)中怎樣給已發(fā)布的Flash添加鏈接的方法
更新時(shí)間:2007年03月20日 00:00:00 作者:
說(shuō)到這個(gè)問(wèn)題,可能有人就會(huì)說(shuō),那還不簡(jiǎn)單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對(duì)應(yīng)的鏈結(jié)還沒(méi)有確定或者以后會(huì)變更怎么辦?
解決思路:
因?yàn)榫W(wǎng)頁(yè)中的 Flash 是以控件形式出現(xiàn)的,優(yōu)先級(jí)別較高,所以直接對(duì)它加鏈接是無(wú)效的,不過(guò)可以用按鈕控件 BUTTON 來(lái)實(shí)現(xiàn)。
具體步驟
1.直接在按鈕上加上onClick事件打開(kāi)指定頁(yè)面:
<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 對(duì)象的 wmode 屬性值為 Opaque。
技巧:方法1中代碼第二行的_blank參數(shù)可以去掉或者修改為_(kāi)self讓鏈接在當(dāng)前窗口打開(kāi)。
特別提示
代碼運(yùn)行后,在Flash上單擊,將打開(kāi)代碼中指定的URL(圖5.1.9)。
圖5.1.8 給Flash添加鏈接功能
特別說(shuō)明
本例問(wèn)題的解決,主要是利用Flash對(duì)象的wmode屬性和BUTTON標(biāo)簽的特性。設(shè)置Flash對(duì)象的wmode屬性值為opaque,是為了降低Flash對(duì)象的優(yōu)先級(jí),然后利用BUTTON標(biāo)簽把Flash對(duì)象渲染為一個(gè)按鈕,這樣就可以通過(guò)設(shè)置BUTTON對(duì)象的樣式或事件來(lái)解決問(wèn)題。
http://fzlshop.com 菜單
第二種方法:
說(shuō)到這個(gè)問(wèn)題,可能有人就會(huì)說(shuō),那還不簡(jiǎn)單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對(duì)應(yīng)的鏈結(jié)還沒(méi)有確定或者以后會(huì)變更怎么辦?我需要的是能夠在外部修改flash對(duì)應(yīng)的鏈結(jié)。
那直接在flash所在的object元素外部加<a></a>標(biāo)簽來(lái)控制不就行了,可能有些人會(huì)這么想,思路正確,但是行不通。呵呵,怎么辦?百度一下先,呵呵,真是相當(dāng)佩服某些人的牛腦,真牛,下面是一種解決的方法:
首先,我們肯定是要先插入FLASH.因?yàn)?Flash默認(rèn)是最高層.所以, 我經(jīng)常會(huì)遇見(jiàn)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>
再接下來(lái),就是在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è)透明層, 還是不能接受事件的.
更確切地說(shuō),是一部分可以,一部分不可以,和FLASH部分重疊的那一部分不行.
為什么不行.說(shuō)實(shí)話,我也不清楚,我是試驗(yàn)得出來(lái)的...
當(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>超連接是再簡(jiǎn)單不過(guò)的事啦.. 這時(shí),以上的問(wèn)題是不是都解決了,把事件都給kong.gif接受!
單擊事件, <div onclick="ok()" id="huiLayer" ...........
不管是坐火車(chē),還是飛飛機(jī),過(guò)年都得回家,所以方法還是有的,F(xiàn)lash本身還提供了一種方法,相當(dāng)?shù)暮糜?,就是在Flash內(nèi)部通過(guò)FSCommand調(diào)用外部的腳本,個(gè)人認(rèn)為這種方法簡(jiǎn)單實(shí)用,可控能力強(qiáng),具體用法,就不在這里多說(shuō)了,你在網(wǎng)上搜FSCommand關(guān)鍵鍵字就會(huì)啊到很多實(shí)例,不過(guò)還是有一點(diǎn)提示:在提供javascript版本的調(diào)用方法時(shí),最好也提供一個(gè)vbscript的版本,否則調(diào)用可能會(huì)不成功。
因?yàn)榫W(wǎng)頁(yè)中的 Flash 是以控件形式出現(xiàn)的,優(yōu)先級(jí)別較高,所以直接對(duì)它加鏈接是無(wú)效的,不過(guò)可以用按鈕控件 BUTTON 來(lái)實(shí)現(xiàn)。
具體步驟
1.直接在按鈕上加上onClick事件打開(kāi)指定頁(yè)面:
<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 對(duì)象的 wmode 屬性值為 Opaque。
技巧:方法1中代碼第二行的_blank參數(shù)可以去掉或者修改為_(kāi)self讓鏈接在當(dāng)前窗口打開(kāi)。
特別提示
代碼運(yùn)行后,在Flash上單擊,將打開(kāi)代碼中指定的URL(圖5.1.9)。
圖5.1.8 給Flash添加鏈接功能
特別說(shuō)明
本例問(wèn)題的解決,主要是利用Flash對(duì)象的wmode屬性和BUTTON標(biāo)簽的特性。設(shè)置Flash對(duì)象的wmode屬性值為opaque,是為了降低Flash對(duì)象的優(yōu)先級(jí),然后利用BUTTON標(biāo)簽把Flash對(duì)象渲染為一個(gè)按鈕,這樣就可以通過(guò)設(shè)置BUTTON對(duì)象的樣式或事件來(lái)解決問(wèn)題。
http://fzlshop.com 菜單
第二種方法:
說(shuō)到這個(gè)問(wèn)題,可能有人就會(huì)說(shuō),那還不簡(jiǎn)單,直接用flash的ActionScript中的url方法不就搞定了,那么如果我們的UI人員設(shè)計(jì)完flash,但flash對(duì)應(yīng)的鏈結(jié)還沒(méi)有確定或者以后會(huì)變更怎么辦?我需要的是能夠在外部修改flash對(duì)應(yīng)的鏈結(jié)。
那直接在flash所在的object元素外部加<a></a>標(biāo)簽來(lái)控制不就行了,可能有些人會(huì)這么想,思路正確,但是行不通。呵呵,怎么辦?百度一下先,呵呵,真是相當(dāng)佩服某些人的牛腦,真牛,下面是一種解決的方法:
首先,我們肯定是要先插入FLASH.因?yàn)?Flash默認(rèn)是最高層.所以, 我經(jīng)常會(huì)遇見(jiàn)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>
再接下來(lái),就是在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è)透明層, 還是不能接受事件的.
更確切地說(shuō),是一部分可以,一部分不可以,和FLASH部分重疊的那一部分不行.
為什么不行.說(shuō)實(shí)話,我也不清楚,我是試驗(yàn)得出來(lái)的...
當(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>超連接是再簡(jiǎn)單不過(guò)的事啦.. 這時(shí),以上的問(wèn)題是不是都解決了,把事件都給kong.gif接受!
單擊事件, <div onclick="ok()" id="huiLayer" ...........
不管是坐火車(chē),還是飛飛機(jī),過(guò)年都得回家,所以方法還是有的,F(xiàn)lash本身還提供了一種方法,相當(dāng)?shù)暮糜?,就是在Flash內(nèi)部通過(guò)FSCommand調(diào)用外部的腳本,個(gè)人認(rèn)為這種方法簡(jiǎn)單實(shí)用,可控能力強(qiáng),具體用法,就不在這里多說(shuō)了,你在網(wǎng)上搜FSCommand關(guān)鍵鍵字就會(huì)啊到很多實(shí)例,不過(guò)還是有一點(diǎn)提示:在提供javascript版本的調(diào)用方法時(shí),最好也提供一個(gè)vbscript的版本,否則調(diào)用可能會(huì)不成功。
相關(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)畫(huà)(.swf文件和.exe文件)的 工具。2006-12-12
ActionScript3禁止構(gòu)造請(qǐng)求標(biāo)頭Referer
ActionScript3禁止構(gòu)造請(qǐng)求標(biāo)頭Referer...2007-03-03

