发新话题
打印

怎么给网页中的FLASH动画加超连接,加事件

怎么给网页中的FLASH动画加超连接,加事件

写技术文档是第一次, 没什么经验... $ S2 i  r% C# W$ f) x5 S  c
只希望大家能和我一起分享,我的成果. + ^- f& Q5 r3 \  D* O
可能用语方面不是很正规,要兄弟们费神了, : l/ j1 V4 l5 b+ L7 U' n! d
请高手们多多指点............
! q7 L/ O& M) r, t# l# ]! O好了,费话不多说了... 进入正题. : x% r1 ^& a/ J- K( }
* p9 |4 Q( F; X" W$ [$ _( L- J1 U
3 f- O2 {0 @6 ^0 v8 L. ^, x5 }. }. r
在论坛上面,看到了好多帖子,是关于FLASH的有30%(可能有点夸张..)
2 v5 Y: u& ?$ f是"怎么在网页中插入的Flash上加超连接","如何让Flash接受相应的单击事件等" ' f# Q) M6 r. r) ^: R$ y
这类的问题. FLASH可能是点特殊吧,不能直接用<a></a>来设置超连接...
/ w4 `6 p6 D9 Z4 ^. _( d6 _也不能直接加入事件,所以才有这些问题的出现.
+ }* H& _6 Z2 z8 S" v( N0 F2 t9 {( ?1 U, m* b
在搜集的相关的资料,加上自己的测试后.终于可以给以上问题个答复了.
6 r( H* n2 Z' j! R" |* D+ v+ \我先把研究后的代码贴出来,然后在进行分析. 4 d7 h0 B% E. ]& s" C+ G; ?- U
( {7 d5 n) ], X6 r$ H) I0 {
  ' k: I: @; \  k5 x3 N7 \7 e3 V7 l

# w( k! v0 _, p5 p; r<div  style="z-index:-1">  <!--1.设置FLASH为底层--> 7 I' d2 r) q4 y  j( {
     <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">
# I/ v! i  E; ^/ ?5 P' K  ^    <param name="movie" value="media.swf"> 0 S; K( V# _- x' P# Y7 `; K2 [
  <param name="quality" value="high"> 3 {( P& e! \0 W$ p: V
  <embed src="media.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="115"></embed>  
" z3 t* v, t; @9 F/ z0 W  <param name="wmode" value="transparent">  <!--2.必须把FLASH设置为透明-->
$ u1 T3 x8 w- c) e</object> </div>   
. M  R6 ?- I  y" R' G- {' n<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">
& x1 _* {' b6 M# j2 g<img src="kong.gif" width="200" height="115" border="0"></a></div>   
; B' F" s: e7 s: @% n* [<!--如果直接加个透明层的话,我试验过了,是不行.  可能高手们有好的办法..--> 3 _* f- V3 e. A+ J. @6 g* |6 N) T/ N
<!--3.所以,我在透明层上加了个透明的图片.就是kong.gif 设置超连接.-->
6 T% {; A) T! ~8 t, E& y2 M<!--则,kong.gif 在FLASH的上层,点击连接,连到www.cnlk.com..-->
- j4 Q. n! B0 b6 `3 l<!--1.2.3. 是标注的重要点--> + I4 u$ H1 B3 ^

. Z! {, z% z; E) O# m  $ u# Y2 e; `4 q( ~# a: T

/ @  ^' c& X* H# y* q0 t" ~$ K% n$ q7 [# C  j7 ^" j
首先,我们肯定是要先插入FLASH.因为,Flash默认是最高层.所以,
) ~5 g3 c; B2 |! p+ M/ i8 t' s就会出现Flash把下拉菜单挡住了.
; L0 o: a. I' [3 B把Flash文件放到一个层中,设为最底层,FLASH设为透明.
% O( \7 N& ~9 u2 J<div style="z-index:-1">   <!--1.设置FLASH为底层--> + m' d3 _1 q% V0 c
     <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">
7 q& A. U' E& s3 V. \0 k2 S4 z    <param name="movie" value="media.swf"> " u1 |" ]) q* i- K5 ]& Z
  <param name="quality" value="high">   k; M4 w; e( s) d8 N% D. i* X
  <embed src="media.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="115"></embed>  % j. u+ ?/ B! o' m6 g
  <param name="wmode" value="transparent">  <!--2.必须把FLASH设置为透明--> , N+ N0 `# @( Q+ Z% c
</object> </div> 4 g2 i/ C0 A+ y

- S) `3 F, A9 p再接下来,就是在FLASH的层上再加上一层,
$ e6 _# ~# s5 |, |! y" ~$ F, EFlash本身不能直接加入onclick.等事件,所以,只能借助别的东西啦.
  W9 r! u5 w+ P就是在FLASH上加个透明层,
6 u% E1 c. x! u- N& y<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"> 2 Q' B. Y+ B4 i/ X; C
<img src="kong.gif" width="200" height="115" border="0"></a></div>   ( n; h! k! X- I; I+ C
论坛上面,给了一些解决方法,就是加个透明的层,但是,如果光有个透明层,
1 [. l8 @+ X, O7 V还是不能接受事件的. 更确切地说,是一部分可以,一部分不可以,和FLASH部分重叠的那一部分不行. , y, Q6 K% S) x/ A, k9 Z
为什么不行.说实话,我也不清楚,我是试验得出来的...  5 `# M! s0 g0 \  @1 Y+ ]

4 H% F- [- P3 d2 F% @: ^# _当我把这个层的背景颜色设为任意一种时,不是透明时,发现.可以接受事件了,在层上加了个
! o& o0 X( l: o% @( R; x# i超连接,也可以.. 但是,这还不是我们要的结果.因为,把整个"精美"的FLASH给遮盖了.. : b2 Y, P, \/ ?! C6 W& c) L' O
所以,有<img src="kong.gif" width="200" height="115" border="0"> % D2 s5 Q0 f8 V  g8 F( N- z
我用PhotoShop做了个透明的图片kong.gif 大小都可以,但是必须是透明的!这样
( p; \* p* P) r7 e8 ~才不至于把底下的FLASH给遮盖住了.  
$ h( S7 i9 Y# T0 P( q) b试验了一下... 成功了... 点击FLASH.其实是击中了FLASH上层的透明图片kong.gif
/ P( ]' r' O/ i6 Y3 e5 V2 x% ^8 U图片,就可以接受很多事件啦,onclick , onmouseover ,onmosueout ...... 4 U3 {7 W: d; u4 R
给图片加个<a></a>超连接是再简单不过的事啦.. ' g' f3 c$ L0 M
这时,以上的问题是不是都解决了,把事件都给kong.gif接受!
" t. P3 E+ k  b' I& K& G4 Y, N单击事件, <div onclick="ok()" id="huiLayer" ...........
力争上游  

TOP

发新话题