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

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

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

登录后查才能浏览下载更多咨询,有问题联系QQ:3283999

您需要 登录 才可以下载或查看,没有账号?入住遨海湾

×
废话不多说 现在开始 4 W8 E( @% t! V0 ?' B新见一层动作层 3 M) g- I6 v) d; t: ?+ y ( Y1 W9 S+ }9 S( d 在第一帧中加入以下flash代码 7 W$ o# H0 x. p( _# ]1 O8 A6 e! P) z loadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); % h1 W* Q+ o4 M" P/ ]" sloadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); . d& V' s$ D9 k% J9 UloadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3); i# w. n1 }5 s) W/ qloadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); 9 A. D" }5 \! m' j: P/ K下面我来介绍一下loadmovie 与loadMovienum的区别 ; I& F! J2 {. c. j. a3 j0 g p% P 一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 9 d( |0 G; A$ t7 A8 f# @首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 2 }: C% C5 {/ I& q# b( W5 e1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 ) I) K1 V5 A7 d4 H) ?* R这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: " b5 `; j& O& ~8 F% O loadMovie("01.swf", _root) + G/ O5 s }& l4 WloadMovie("01.jpg", _root) & A! y, D0 B7 [" w9 g' z loadMovie("http://www.abc.com/01.swf", _root) * @: L2 P+ Y' i1 G1 FloadMovie("http://www.abc.com/01.jpg", _root) ! A4 x- i3 H3 X1 n e8 W: t* M2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。 + B' T. B' S$ o& C" H9 y 这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) 4 b% q# P! z0 d: S" z6 D+ NloadMovie("01.swf", _root.loading) $ X- \( N) t" ~9 rloadMovie("01.swf", _root.loading.01) # N. O9 o2 ^! E! g 3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 : V1 g: J$ |) _1 q/ o' Q8 B1 o2 W# m; c0 ? 二、loadMovieNum("url",level [, variables]) * w! l" i# J( b) A' D' w描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。 6 K5 g4 s$ \! e# z 首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 ( s0 ^ E7 K+ l) e B/ k1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 * r/ G+ Q3 r0 W& r$ X4 N* i该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 : v9 y' e6 M7 V8 x5 ^6 h2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 # j, J- h; h7 H" {" _4 Z加载的时候,可以这样来写: * U/ c' ^0 A$ W: vloadMovieNum("01.swf", 1); " I2 J9 X6 f* s6 v( v8 ]. P loadMovieNum("01.swf", 2); # T! `; S: `- d7 o6 o' L loadMovieNum("01.swf", 3); 7 t# }) }3 |" c! m6 N4 Q ^- {控制的时候,可以这样使用: _level1._x=10 ; $ I! v3 k* a, F _level2.aa._alpha=50 ; " g& j& X o* ]- @$ W( `0 w8 Y _level3.aa.bb._width=110; & C' s1 v7 v- A9 Z  需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 . n4 ]: h$ k" A 3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 & Q+ U4 ]- n* c三、loadMovie/loadMovieNum 的定位 & ~2 h4 g& U9 ~3 z 我想,也许这才是大家真正要找的东东:) $ `0 r6 x7 f9 T3 J$ _- O1.loadMovie的定位 b6 i1 J' z7 ]7 R   由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。 5 y9 T" Y+ e+ y% ]/ [1 W' f# U  比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: : Q- G$ i' H. {+ ~/ O) iloadMovie ( "02.swf" , _root . aa ); - |; Q$ b. H$ J _root . aa . _x = 50 ; $ A, [$ A: }9 d+ e, h. u _root . aa . _y = 100 ; " I0 f2 ~2 c+ t$ w9 ]' L( x- L  在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: 8 y8 }% N7 ~0 G3 }6 A3 f9 Z _root . createEmptyMovieClip ( "aa" , 1 ); / l* n& ?# y( E2 V3 Z with ( aa ) { b3 D( ]* {5 V; G2 i$ z: `2 r' E_x = 50 ; 4 l; J( K. y3 B* s" o _y = 100 ; - r2 x3 c/ @+ S6 [loadMovie ( "02.swf" ); : a. V+ ?- O) o4 Z) p8 y} O' y/ v2 ~3 U1 ?% G 2.loadMovieNum的定位 1 Q y: g% Z, p4 x' L) g0 S  从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下: H6 D( z. k5 Q( l5 `4 D) A loadMovieNum ( "02.swf" , 1 ); & I) z8 @, ]1 Z. H+ j# x: x _level1 . _x = 50 ; ( F: I0 Z9 s& T4 [3 p6 y4 @ @ _level1 . _y = 100 ; ' d+ a$ R5 x" a$ O: g/ S  但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢? 0 k3 N- m |) K3 I6 G- H4 C& w 原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 * `" u* P$ F/ a3 e那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 2 g8 [3 y/ \2 s2 t* f8 C6 j  解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下: 4 L3 z( }7 k2 p; O7 n/ MloadMovieNum ( "02.swf" , 1 ); 5 u8 g0 `& J! z' C# \1 SonEnterFrame = function () { 8 B' o! `( c- R k4 O: U- F+ t# l if ( _level1 ) { ' T% u5 w0 }6 Y with ( _level1 ) { , N4 A. e- F: j* }9 M, Q' A& U_x = 50 ; : N, I, u: f% l8 |- b_y = 100 ; , R: e; D# Z! A) n0 ~/ m} ' S! S8 U+ I' c delete onEnterFrame ; 9 Z/ v2 X- Z2 q+ n }1 g} 1 v) T' C( l, y}; 6 J, |5 }7 s/ S) ^9 q 或者: H6 Y4 j" @" W4 S; p1 D2 dloadMovieNum ( "02.swf" , 1 ); $ N) Y/ S' R, L6 J6 v. Y0 {2 G, ~function go () { 6 ` P2 q. I2 E# d8 n* ` if ( _level1 ) { + y8 a" m8 O% V5 M5 @7 ^% E) vwith ( _level1 ) { ( [, t; J1 q0 u1 X% x5 f/ ~ _x = 50 ; ) J4 O# j8 G. T! A# h4 ^& G) T2 d _y = 100 ; . |* x) `6 d; l" X& i } 2 p Z+ p1 y3 bclearInterval ( fps ); % l% U( a1 V3 ]7 T1 z( y) u2 M} 0 I3 B- D9 e: M9 Y/ N } " F) F+ J$ I9 X$ t2 bfps = setInterval ( go ); ; r H" N! F2 [- ~ * I" B- f/ z; e6 b8 k limengdeai
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2024-11-24 18:53

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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