在网页中怎样给已发布的Flash添加链接的方法

所属分类: 网页制作 / Flash 阅读数: 1834
收藏 0 赞 0 分享
解决思路: 
因为网页中的 Flash 是以控件形式出现的,优先级别较高,所以直接对它加链接是无效的,不过可以用按钮控件 BUTTON 来实现。 

具体步骤 
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中的代码运行后单击按钮时,按钮中的Flash有个下沉的动作,如果要取消这个动作,可以禁止按钮的交互性,然后用标准的A标签做链接,代码如下: 

<a href="http://www.flash8.com" hidefocus><button disabled style="width:225;height:76;border:none"> 
<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> 

注意:必须设置 Flash 对象的 wmode 属性值为 Opaque。 
技巧:方法1中代码第二行的_blank参数可以去掉或者修改为_self让链接在当前窗口打开。 
特别提示 
代码运行后,在Flash上单击,将打开代码中指定的URL(图5.1.9)。 

图5.1.8 给Flash添加链接功能 


特别说明

本例问题的解决,主要是利用Flash对象的wmode属性和BUTTON标签的特性。设置Flash对象的wmode属性值为opaque,是为了降低Flash对象的优先级,然后利用BUTTON标签把Flash对象渲染为一个按钮,这样就可以通过设置BUTTON对象的样式或事件来解决问题。
http://fzlshop.com 菜单

第二种方法:
说到这个问题,可能有人就会说,那还不简单,直接用flash的ActionScript中的url方法不就搞定了,那么如果我们的UI人员设计完flash,但flash对应的链结还没有确定或者以后会变更怎么办?我需要的是能够在外部修改flash对应的链结。
那直接在flash所在的object元素外部加<a></a>标签来控制不就行了,可能有些人会这么想,思路正确,但是行不通。呵呵,怎么办?百度一下先,呵呵,真是相当佩服某些人的牛脑,真牛,下面是一种解决的方法:

首先,我们肯定是要先插入FLASH.因为,Flash默认是最高层.所以, 我经常会遇见Flash把下拉菜单挡住的情况.

把Flash文件放到一个层中,设为最底层,FLASH设为透明.
复制代码 代码如下:

<div style="z-index:-1"> <!--1.设置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设置为透明-->
</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="https://www.jb51.net">
<img src="kong.gif" width="200" height="115"
border="0"></a></div>

论坛上面,给了一些解决方法,就是加个透明的层,但是,如果光有个透明层, 还是不能接受事件的.
更确切地说,是一部分可以,一部分不可以,和FLASH部分重叠的那一部分不行.
为什么不行.说实话,我也不清楚,我是试验得出来的...

当我把这个层的背景颜色设为任意一种时,不是透明时,发现.可以接受事件了,在层上加了个
超连接,也可以.. 但是,这还不是我们要的结果.因为,把整个"精美"的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" ...........

不管是坐火车,还是飞飞机,过年都得回家,所以方法还是有的,Flash本身还提供了一种方法,相当的好用,就是在Flash内部通过FSCommand调用外部的脚本,个人认为这种方法简单实用,可控能力强,具体用法,就不在这里多说了,你在网上搜FSCommand关键键字就会啊到很多实例,不过还是有一点提示:在提供javascript版本的调用方法时,最好也提供一个vbscript的版本,否则调用可能会不成功。
更多精彩内容其他人还在看

AS3 中的package(包)应用实例代码

初学者在学习AS3时会遇到什么样的问题呢?只有从初学的角度来实践,才能知道,package 这个高手们必玩的内容,对初学者来说或许就有一些困惑。
收藏 0 赞 0 分享

swfupload使用代码说明

终于在天哪joyous的帮助下,花了一天的时间,搞明白大部分内容. swfupload(以下简称su)遇到的主要问题就是,版本不同造成的极大差异, 现在的版本已经到2.1beta。我用的是2.02版,天哪用的是1.xx版。
收藏 0 赞 0 分享

Flex中最好的MVC框架Mate框架

个人感觉Mate框架非常适合开发一般运用程序,可以提高开发效率,节约成本,同时也比较好维护。但如果要做游戏或是其它控制更强的程序并不适合。
收藏 0 赞 0 分享

Flex 创建复数行文本内容的List

效果不错的flex多行文本
收藏 0 赞 0 分享

flash/flex/air的一个大问题

Close Advertisement 对HTML标签的支持得不够好。现在普遍的做法是浮一个iframe。
收藏 0 赞 0 分享

flex编程动态生成图像

程序需求:动态生成柱形图,柱形条数不确定,柱形字段不确定
收藏 0 赞 0 分享

帮助你学习 Flash / ActionScript的12个网站

Adobe Flash是一个很好的技术,该技术允许开发人员加入的互动性和平稳的动画网页。 其受欢迎程度是如此巨大,您可以看到许多网站,致力于帮助开发者有兴趣在闪光。
收藏 0 赞 0 分享

入门简单的FLEX验证码一例

入门简单的FLEX验证码一例
收藏 0 赞 0 分享

ActionScript3禁止构造请求标头Referer

ActionScript3禁止构造请求标头Referer
收藏 0 赞 0 分享

做了一个flash视频墙[附源文件与xml文件]

这篇文章主要介绍了做了一个flash视频墙[附源文件与xml文件]
收藏 0 赞 0 分享
查看更多