|
登录后查才能浏览下载更多咨询,有问题联系QQ:3283999
您需要 登录 才可以下载或查看,没有账号?入住遨海湾
×
废话不多说 现在开始 : J& V @) f: ]# z9 t+ [, A
新见一层动作层
2 ~# |0 m7 _4 _ H" ^4 d6 @( S( {3 N' v: |
在第一帧中加入以下flash代码 " Q1 S" J, o- R |
loadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1);
( C o! c5 u% u2 t3 kloadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); ) _( p' s4 O, G# J- b7 P
loadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3);
2 }2 M) j% M4 c# J OloadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); & l0 e4 a3 R# i B
下面我来介绍一下loadmovie 与loadMovienum的区别 7 a2 ]9 F/ ~3 c5 r6 N& L
一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 - y' U/ |9 }# ^* @
首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。
2 c6 o2 a' w6 k0 S9 u6 P) ]1 _1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 9 z* a" A2 O. `9 d4 n
这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: ! C- T4 t3 p8 T! j/ e
loadMovie("01.swf", _root)
$ M" i$ P2 B8 k& m, R: A4 RloadMovie("01.jpg", _root)
* p+ b! r& n: H/ c3 u/ |( h) H0 n. @( QloadMovie("http://www.abc.com/01.swf", _root)
/ Z$ g; l! C9 ^8 t/ IloadMovie("http://www.abc.com/01.jpg", _root)
[) c4 G) S% M, R& R. s( B" g* }2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。
6 K1 S" q. f8 O0 P$ {这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) ; v- k1 P* {4 E
loadMovie("01.swf", _root.loading) 9 o5 W A2 C4 g% v8 x
loadMovie("01.swf", _root.loading.01) 3 n' H2 Q( W; |: P1 p6 u( a* I& s
3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。
2 E1 O; \/ r* d7 h, i2 f- \% b( z& ^3 A3 Z H! v" k: z
二、loadMovieNum("url",level [, variables]) 3 k& X8 J& j4 e! I
描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。
$ _, o( }) r- Z' Q/ O, b M3 D3 L9 e首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 z/ n- G' z/ p
1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
" h1 c/ D; L& D2 p/ K该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。
# E3 y5 Y: n( ?/ G0 k' j4 a) S2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 : j+ z2 J9 m; S( X f3 k
加载的时候,可以这样来写: / Q: f: _" z$ V F3 A, V1 P+ ?
loadMovieNum("01.swf", 1);
% W! U. y* k9 Q$ d) ~6 e4 GloadMovieNum("01.swf", 2);
, C" h1 G2 E: S" UloadMovieNum("01.swf", 3); : K0 {: x6 O( a% A+ F+ [, s7 v: t
控制的时候,可以这样使用: _level1._x=10 ;
4 |1 @3 ~: b/ g- Y, e_level2.aa._alpha=50 ; 9 _; F S, ^! w6 f: T+ _
_level3.aa.bb._width=110; - y" r' e% S( r0 J) L$ J1 B8 T
需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。
" |- S/ O5 m& D+ a$ b3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。
; v/ w4 B8 V8 K- Y* P5 t& U* H, |: p三、loadMovie/loadMovieNum 的定位
4 [6 L0 e1 i( i# y8 _: R9 F我想,也许这才是大家真正要找的东东:) J& I t2 G* f
1.loadMovie的定位
, S) v Z9 E. h4 T 由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。
* H( L! M! q' g( F: v3 m 比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下:
7 y4 O( z5 |* p- M3 o& xloadMovie ( "02.swf" , _root . aa ); , t0 A# E3 S, k' i [9 H( c
_root . aa . _x = 50 ;
6 _& c+ W1 v9 h5 A/ G- S0 ?; p_root . aa . _y = 100 ; # P( q$ p. I/ {; a* g/ X: p
在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下:
* ?, F1 }3 }7 f1 E% U7 f, U_root . createEmptyMovieClip ( "aa" , 1 ); 0 \% Q, b4 S2 J
with ( aa ) {
/ y1 ~ E z3 N/ k: j& t/ I( w_x = 50 ;
* i: s' P: B% m. u1 h9 A; M_y = 100 ; : j; @- ~$ ]: D T& B$ z8 P+ b* G
loadMovie ( "02.swf" );
4 b9 i" ?1 H5 m, S3 v9 o' Z} $ c; v( ]" T% a$ L/ M1 f
2.loadMovieNum的定位 " z( ^' ]7 Y9 c& J5 @
从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下:
2 O K5 b3 i8 q+ E+ Z( c, b& lloadMovieNum ( "02.swf" , 1 ); b6 C+ j& g. A$ w! E; {+ e6 R
_level1 . _x = 50 ; 8 ^* X& z* n, M4 T( Z ^
_level1 . _y = 100 ; " G) S7 h9 I* A: a, W
但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢?
; A; p$ M' g: c' d0 o& {1 J原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。
% j, E& ?. R$ Q7 |3 S2 W那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。
3 M$ N) t9 w- R+ z2 B u6 b. D 解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下:
2 a+ w. x$ a: `* ^loadMovieNum ( "02.swf" , 1 );
6 B, [' w' E. q& y- o' t0 ~onEnterFrame = function () {
4 D) B) B+ O; Y+ }if ( _level1 ) {
1 l' u" y7 K& X. f+ d% ?with ( _level1 ) {
. V7 t1 L9 {& Q3 F$ @_x = 50 ;
Q/ r5 B! U7 B1 D& o8 D( s_y = 100 ;
6 D2 V1 w5 o/ `6 h- [6 d} 9 t7 _$ |# i# l6 W6 J6 n
delete onEnterFrame ;
) l$ F9 r/ g- t9 w" e+ E- \/ P9 T+ r}
& _* J. W* M/ m* {6 F! s6 v e" h};
8 a9 k2 q& W6 Z: D! E或者: 1 Y# n! z+ g: E. p' p T% D0 U
loadMovieNum ( "02.swf" , 1 ); ( d* D1 x7 t& r, p
function go () { ) ?; v, x! v( x- k( F! i5 i% X! Q+ c
if ( _level1 ) {
2 a( G/ [8 v7 ^% u: ]2 I/ ~with ( _level1 ) { , ?/ }- X% z7 x
_x = 50 ;
( n" j- D& F( r' `_y = 100 ;
$ ?( P4 V+ s# _! S0 k0 c}
: |; O, z5 E" y/ FclearInterval ( fps );
" ]! i1 y* S+ Y. o; ~ |# h' q} . I3 y& |9 J# F. H2 ^! P
} 1 }+ b1 ^" F) ^+ o, p. o1 i
fps = setInterval ( go );
0 _3 ?: T, @6 { ]8 @+ v/ h. E7 r% H- L
limengdeai |
|