找回密码
 入住遨海湾
搜索
网站解决方案专享优惠-3折上云
查看: 1530|回复: 0

详谈flash外部载入透明flas AND loadMovie/loadMovieNum使用详解 ...

[复制链接]
发表于 2007-12-9 10:59:00 | 显示全部楼层 |阅读模式

登录后查才能浏览下载更多咨询,有问题联系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
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

网站解决方案专享优惠-3折上云

手机版|小黑屋|遨海湾超级社区

GMT+8, 2026-7-8 08:42

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表