木子屋 Dnawo's BLOG

在页面中给swf添加链接

👤 dnawo 📅 2009-08-20 👁 11318 👍 0 💬 1 🔄 本站原创
广告商那边提供了一些swf素材让我们制作广告代码,在代码中点击swf时需打开一个页面,由于广告商未提供fla格式文件,我们只能想办法在页面代码中给swf添加链接,最开始想到的是在swf外添加一个<a>:

HTML
<a href="http://www.mzwu.com/">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="430" height="240">
  <param name="movie" value="pic/200908/430x240.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="Opaque" />
  <embed src="pic/200908/430x240.swf" width="430" height="240" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="Opaque"></embed>
</object>
</a>

结果链接并不起作用,应该是swf在浏览器中具有很高的优先级,页面中的元素都被遮挡住了。Google了下,据说将<a>改为<button>有用,测试了下:

HTML
<button style="width:430px; height:240px; border:none;" onclick="window.open('http://www.mzwu.com/')">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="430" height="240">
  <param name="movie" value="pic/200908/430x240.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="Opaque" />
  <embed src="pic/200908/430x240.swf" width="430" height="240" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="Opaque"></embed>
</object>
</button>

在IE6、IE7、IE8、FF3.0、Opera9.6、Chrome2.0下均能打开链接,但在IE8、Opera9.6、Chrome2.0中显示有些问题:

图片

修改了下button的padding属性,IE8、Opera9.6、Chrome2.0显示总算正常了:

HTML
<button style="width:430px; height:240px; border:none; padding:0; background:none;" onclick="window.open('http://www.mzwu.com/')">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="430" height="240">
  <param name="movie" value="pic/200908/430x240.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="Opaque" />
  <embed src="pic/200908/430x240.swf" width="430" height="240" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="Opaque"></embed>
</object>
</button>

美中不足的是页面上点击swf时会有个下沉的动作,有人建议禁用button,在button外再加个链接:

HTML
<a href="http://www.mzwu.com/" target="_blank">
<button style="width:430px; height:240px; border:none; padding:0; background:none;" disabled>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="430" height="240">
  <param name="movie" value="pic/200908/430x240.swf" />
  <param name="quality" value="high" />
  <param name="wmode" value="Opaque" />
  <embed src="pic/200908/430x240.swf" width="430" height="240" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="Opaque"></embed>
</object>
</button>
</a>

遗憾的是在FF3.0、Opera9.6不支持!

代码注意事项:

·button的长宽必须和swf长宽一致;
·button的border属性必须设置成none,padding属性设置为0,background属性设置为none;
·swf的wmode属性必须设置为Opaque或Transparent;

评论(1)

www.rxcmyk.com 2009-08-27 13:23
做的很漂亮呀
不错
计算题
评论需审核通过后显示
← 上一篇 C#获取Unix时间戳 下一篇 → GIF文件格式