发新话题
打印

[讨论] 互动flash动画:跟随鼠标移动拉伸的蜘蛛丝

互动flash动画:跟随鼠标移动拉伸的蜘蛛丝

这是以前个人网站上的一个flash点辍,是用flash的画线函数实现的,希望给有想像力的同志一点启发,算是抛砖引玉吧。) y" c9 ?6 Y2 O
7 |2 ^; b' ]; i. F) ?
    下面我们来讲实现的方法。! {" p7 E9 j% G/ F3 P
; B) p5 C0 W6 u9 L" O
    1、在flash中先建三个mc。
* q0 W$ p) w, ?- ~+ k9 \! p# _! c: H
    一个是spider_mc,画一个蜘蛛,像样点就算了,呵呵!
( y8 Q4 `1 \! H& x2 I# ^$ z2 ~1 p2 ^
" z5 j8 l  v5 e    一个是net_mc,一个蜘蛛网,当背景用的,没有太大用。
6 @6 Y6 {/ o; J7 |) [+ F( h$ }" S- [# K5 u0 _0 e
    最后一个是空的mc,line_mc,用来画线(蜘蛛丝)。
5 n( d. @1 M3 i1 d7 P; ^
; r1 ?- o" H) |- n# g$ d) h) S; d
/ }$ i' X8 C3 x" m/ ?# D' D

# {, S5 R3 u7 x
: ^; h: N: e' n6 U- s0 P; [) |' g2 T/ s5 B" [
    2、回到场景,建三个层。
0 J7 x5 W5 a: e8 J+ ]2 {  P5 N* h4 y& j2 f' B% \
    最底下一个叫net,用来放背景net 的,把net拉进去。
/ G0 ?7 P2 r6 L8 a4 H
( e! Z  A1 ~* k    中间一个层叫line,用来放line_mc的,把line_mc拉进来,并给这个剪辑命名line_mc。/ K; Z0 i( |# w
8 j7 _. x& V) h; h: x. e2 T7 i) R
    最后一个当然是放spider_mc 的。
3 I5 c2 m0 T$ `# E+ Q( b3 c! n  K" P0 ^0 C6 {1 x

; h$ k) y7 d. |( {' S1 b; Y
1 x6 e) Z0 z' L6 Q& c# O7 n3 r& |4 ]. \. g0 N; P& i

8 K+ ]2 [  Y" ~8 z$ l5 y- Z& p    3、最关键一步,多建一个action层,写上如下代码。( j, E4 Q1 r; v2 D

* `5 p$ ?. t6 Q% m) z1 k    speed=10;
/ M6 o! i# |. r
% P+ L7 H* e9 v- [) `    spider_mc.onenterframe = function() {
0 z! e9 w7 i* F) h
  {2 m: `3 S% p0 b" u    dx = _root._xmouse-this._x; 4 C) |; [5 C9 F% ~% b' Y* q  L
- p0 _5 q5 i7 Y1 G8 ?2 o: W
    dy = _root._ymouse-this._y;
* m" a8 V5 d, W0 b7 r
% Z- V) \6 G" }. e    p =math.atan(dy/dx)*180/math.pi;
: o3 A: C  ~# u  h% d% I  k0 @, S0 g
7 X, z  H% |7 [; y. ]' @1 k     rota = (dx>0) ? (90+p)270+p); $ l: Y9 D  Y$ a5 j, x- C4 q  o
8 @. L7 p5 Q$ {
    this._x += dx/speed; - y1 b& N" V6 L; Z+ M
9 @! }8 ], p- J1 b. T% ]! L' i
    this._rotation = rota; ' G! x$ l* ~5 R8 l- `
/ d# R7 Q8 `! A" \2 K3 h% F; w! r+ P
    this._y += dy/speed;
- q/ z/ \  S! z: i& N3 B
8 |2 [2 |" r7 ]( P6 J    }; * e1 v' e* U' |$ S" G$ n) e) f

- v5 j. E, v& [0 v    line_mc.onenterframe = function() {
" d$ |  ]8 @: w9 V5 T' ~& ]3 ^" z9 ?& z7 p5 Y+ H
    this.clear();   K/ @# G7 U5 R  V7 j

! m( @% H% K( J2 \, x    this.moveto(0, 0); 2 i5 b( p  E$ |0 A& l
  [+ J' ~  u1 a  u; q+ a$ i( ?
    this.linestyle(1, 0xffffff, 100);
: D" d6 Y! q: y3 e; E" F! S9 u% C4 [% o
    this.lineto(_root.spider_mc._x, _root.spider_mc._y); : s. [; X9 T0 |' P! W/ E
' `# ?6 I! t0 S4 X; ~
    };/ _: ~* Y* Z' x+ a  }2 ^& e

0 U0 [7 |0 e" |1 z7 d    最后生成swf,完成

TOP

发新话题