|
|
登录后查才能浏览下载更多咨询,有问题联系QQ:3283999
您需要 登录 才可以下载或查看,没有账号?入住遨海湾
×
废话不多说 现在开始 * v/ X x. c- D2 D
新见一层动作层 8 a) P" i7 f& H6 M6 ^2 g7 s+ n n
0 v9 o! m# p! P. @- r
在第一帧中加入以下flash代码
9 ^/ k! n) Q3 Q* b3 Z1 S7 ?2 xloadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); . K( O0 |4 l: J* o( ^2 k( E
loadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2);
/ ]4 s: }3 H0 ?, K/ WloadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3);
" U. i8 N7 M+ I; i0 w, A1 mloadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); ' a4 O P- {& B" K( C7 L: B
下面我来介绍一下loadmovie 与loadMovienum的区别
, t. J3 b% g! H6 q3 e一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 ; X; v. p5 L9 S, ]. M
首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 ! \% s9 [% T; G& {3 ~% B
1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
0 `1 j0 F# Q9 I, O# }/ B这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: 3 U2 q. N0 L. n8 a3 |1 M
loadMovie("01.swf", _root)
! Z. t5 N0 w1 v* c4 X8 P1 _- i4 ?6 Q+ NloadMovie("01.jpg", _root) : K2 l4 H1 A. j+ O6 ?- x
loadMovie("http://www.abc.com/01.swf", _root)
/ H$ Y( u) x/ DloadMovie("http://www.abc.com/01.jpg", _root)
; X& l _& A* T7 [+ T6 d2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。
- f4 }8 Q! l5 m9 K这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root)
6 }5 u, m3 h# u% e7 Q9 Q, NloadMovie("01.swf", _root.loading) : \$ E [, `7 K- Y5 ^* y
loadMovie("01.swf", _root.loading.01) # j8 q0 \/ i) }( r k8 x. C
3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 7 n3 ^$ B {# W
8 u0 t9 ]6 }) w 二、loadMovieNum("url",level [, variables])
1 j" n7 o1 H i9 X' B2 T, P7 G) \描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。
0 h5 ~3 Q3 K6 i首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 ( M! H# E6 S; b! a7 ~. E
1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
2 U/ L5 d; D& i3 h) B: p* p该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。
( \ m I7 U7 q' t1 V2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 9 M; L% |- l5 j5 P
加载的时候,可以这样来写:
9 E% \' N% W, f! {4 hloadMovieNum("01.swf", 1);
- {+ w! a$ K( WloadMovieNum("01.swf", 2);
7 `! s$ R: r! x$ @loadMovieNum("01.swf", 3); * O- q2 L8 o2 a1 l$ @
控制的时候,可以这样使用: _level1._x=10 ; $ V+ j- v9 y% i$ M" P& u; s$ p: ]
_level2.aa._alpha=50 ; 4 F: `( z+ q: M% U0 t
_level3.aa.bb._width=110; 7 a- J; r4 K& p) B! _
需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 % d7 J5 v8 u7 K# y- H
3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 ' o# V- i7 ~: z' z# q7 L3 ?
三、loadMovie/loadMovieNum 的定位
1 c& u7 j& e# [7 y+ Y" }8 ^我想,也许这才是大家真正要找的东东:) . ^! ^$ ~' M- j4 N
1.loadMovie的定位 $ }4 U" `" m) t
由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。
" `) {( K5 Q+ J1 V 比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: + {% A$ L/ P! ` p9 e- B
loadMovie ( "02.swf" , _root . aa ); , ?$ p! M/ J1 h! k( ?2 j
_root . aa . _x = 50 ;
3 Y2 y0 k5 l+ ~6 v_root . aa . _y = 100 ;
) D9 X1 _5 M. o4 g" q7 r4 N/ S 在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: + X: {( v* x% W1 {1 H
_root . createEmptyMovieClip ( "aa" , 1 );
9 [% e/ k: I1 ~) }/ Uwith ( aa ) { # n c, h7 K& m
_x = 50 ; & c8 k! i: B& c, Y" q& h3 z0 G% v
_y = 100 ; 0 r, }; Q% t; u& j/ v J* B2 l& v( r
loadMovie ( "02.swf" );
, J3 h4 P4 @. E% X9 g0 S3 L5 W; P}
, B( e ~; O$ Z- m0 H2.loadMovieNum的定位 % \3 I' I. w6 C; L1 e
从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下:
+ e( f) R4 E9 ?loadMovieNum ( "02.swf" , 1 ); - l5 }: a. ~% A" S7 B/ _
_level1 . _x = 50 ; u( `, d. e6 C1 K0 ?! t+ I
_level1 . _y = 100 ; , S; a# F( V# G9 M/ A
但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢?
4 }6 l; u6 _% x原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 % l, `7 U3 L7 z
那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 $ N+ F. [( y \& W+ R; Y
解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下:
; o9 z2 ~7 x3 a/ o# cloadMovieNum ( "02.swf" , 1 );
4 [# ^, h$ k( g0 fonEnterFrame = function () {
' b& x- p' s+ r* B; qif ( _level1 ) {
1 }6 k. ^ D8 S; @3 Awith ( _level1 ) {
- H& O9 c& a L- X% [" A6 J+ V_x = 50 ;
! \0 Q0 k4 Q. H' n% r8 }_y = 100 ;
( n4 `: a$ ?- c1 T0 Z3 S( c! k' W}
5 u3 l# {" T3 H" |delete onEnterFrame ; 0 `5 P) c7 @( w0 V3 g' l* p
} 3 Z8 U3 V. V" F' h
}; % b2 y! q) L. u5 m2 j( H
或者:
. ~& C; p& U0 Z/ BloadMovieNum ( "02.swf" , 1 ); - @3 t' m( a5 h
function go () {
3 Q5 q* P% S+ Eif ( _level1 ) { - i& U5 U/ H9 L% c
with ( _level1 ) { , p3 ~! A/ f* ~' Y( k- ~
_x = 50 ;
! t: E2 X% E+ |1 W8 L% t! Z7 Q_y = 100 ;
u( [( i0 i* | f1 W}
; z9 @1 |$ j0 H1 u1 m/ B+ tclearInterval ( fps );
0 [! G" x* _0 m( \6 D" l% x% T3 h3 \& J$ P} * _# d1 C8 P7 A, D9 F
}
; i6 O) l, k. v9 O/ m! Gfps = setInterval ( go );
' n0 ?* p4 L+ E" N1 \! w
4 u7 J7 Y( l0 Y2 h5 W" ~. ? limengdeai |
|