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

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

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

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

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

×
废话不多说 现在开始 / Y# p& w% J) R M9 ?新见一层动作层 4 j- p4 x' |! E ! j/ A. o1 Q, n9 F8 `0 v% p7 ~7 r在第一帧中加入以下flash代码 i i/ o) ~# W: s: ?9 A+ k' [ loadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); $ a* B0 o1 l0 A1 H5 v loadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); 2 C5 o" ?; ^* ]" N; m7 A% t) @loadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3); 8 W9 I; f# h: K: x/ A7 g6 n loadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); + x$ t5 O4 Y7 M 下面我来介绍一下loadmovie 与loadMovienum的区别 4 U& Z ~1 ^& t! j0 X) U2 ?一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 : Y+ v9 y; V) l1 b9 g( v/ B( P首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 - v7 M# {- K! h; E% k; s$ p- O7 B1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 9 r- I6 p9 U- S& V1 g这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: 3 W( }) g3 Z# Z* v1 ?/ x9 x6 uloadMovie("01.swf", _root) ; o! z/ ] _+ T" x$ g4 ~. }+ | loadMovie("01.jpg", _root) " u" K f6 Q0 N2 floadMovie("http://www.abc.com/01.swf", _root) 5 v; X8 ]5 M! g% r9 c1 kloadMovie("http://www.abc.com/01.jpg", _root) 4 h( _1 v% {0 `* t/ { 2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。 . y3 y- P; W% E5 H 这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) n2 T9 c' B: ]: w5 B7 [ loadMovie("01.swf", _root.loading) . J" a) o# x) b% Q2 h loadMovie("01.swf", _root.loading.01) ; l0 ~, Q0 G3 I4 w6 |3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 : T1 D3 j6 Q7 Y3 f/ O 8 _6 J* r% m; h) _ 二、loadMovieNum("url",level [, variables]) 4 d) V ?6 K6 f$ H8 t" M描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。 . X# z: v- P1 p% B: @2 Q 首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 ) h5 j& k. S+ }* t) ~/ s, U, @8 {1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 F- p+ o; v& H 该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 & \/ g+ f* o H 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 + Y g4 x7 U# F8 A( O 加载的时候,可以这样来写: : _: H& Q, |+ U0 ^# ^ loadMovieNum("01.swf", 1); 6 e& p- v6 B; G5 `: _% H8 vloadMovieNum("01.swf", 2); . ]! d: J8 ~ Z8 e# x/ y loadMovieNum("01.swf", 3); ; S: v8 Y/ K' a; A控制的时候,可以这样使用: _level1._x=10 ; 1 x/ j2 m; W5 r8 k_level2.aa._alpha=50 ; : O; z. t v4 E: g8 B+ U _level3.aa.bb._width=110; 3 [- ^& x. S2 f' D" q& p   需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 8 l5 h/ i. Z. `! ~3 D$ C3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 % B# ?; t# `9 C1 p 三、loadMovie/loadMovieNum 的定位 7 [" \* J+ m% t我想,也许这才是大家真正要找的东东:) 4 O( z9 O" M) U 1.loadMovie的定位 ( s7 L2 i4 _% w+ {1 b+ A7 }* j4 [   由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。 ) _: v# S6 | ?& S! B8 J# Z2 { R  比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: * j1 W8 c5 x7 W7 floadMovie ( "02.swf" , _root . aa ); / z: i; L; O+ d. P; Z_root . aa . _x = 50 ; 9 M" Z( k. V! R4 E3 R _root . aa . _y = 100 ; . @3 r+ v. B6 }2 a( S4 g) f. F  在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: 0 |: t D! V- v_root . createEmptyMovieClip ( "aa" , 1 ); 8 ~: q8 c5 p7 g+ H: bwith ( aa ) { 1 V! @2 f0 u/ K* W9 n7 `_x = 50 ; ) m( s/ l* }2 D! T* N _y = 100 ; 5 \. t0 I/ y* D+ B2 X, gloadMovie ( "02.swf" ); 9 O1 r4 l: p& P- m( U7 V } - i5 z* s6 t3 {: T 2.loadMovieNum的定位 % r: p$ M+ x% e" y7 _6 A5 L  从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下: E) V$ j) |" ~7 o* r- P& E loadMovieNum ( "02.swf" , 1 ); ) w6 \6 F7 ]' S7 {_level1 . _x = 50 ; 9 e. N# j9 F% @# o4 `& o$ o_level1 . _y = 100 ; . \. `9 _& v7 S1 W" m  但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢? * Z+ |; R1 k5 D( a 原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 % i6 N1 a. ~ S$ d& `! }那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 6 \4 w# M3 n/ Y7 t- @/ Q) _  解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下: 1 C/ v! p4 m' p7 E: W loadMovieNum ( "02.swf" , 1 ); 5 z3 k A# Y, N1 F6 ]/ }0 {* ~onEnterFrame = function () { 9 \, z# o* a) m4 R1 v6 p3 ~ if ( _level1 ) { ) [' [, t0 g4 ^1 Z" E/ o$ G with ( _level1 ) { & O0 L" O' u& X/ ?7 M7 t _x = 50 ; % J9 F# l3 r5 s0 P3 b/ m_y = 100 ; % R5 a+ ?; p1 m, g9 @) ~0 `* z } % m, a' I! a! w: \3 P) `: B* B( B% I1 P delete onEnterFrame ; 1 t8 e' M9 ^9 \5 B* x } , d0 y, U# p8 E4 \7 {: _}; & \- {! p4 I/ l或者: 3 P- L8 }! l8 U, h. z" nloadMovieNum ( "02.swf" , 1 ); / W2 E" C2 W1 b Bfunction go () { 1 j9 [1 _! S9 Q2 H- N- H; a, g5 Y2 W if ( _level1 ) { 9 k& a+ n3 @2 g2 `, O' b8 v3 cwith ( _level1 ) { $ p/ Y. _( O4 m& m5 w3 S_x = 50 ; - q S* r* V; ^" Q6 Q9 X _y = 100 ; . Z; ~1 j$ g- T! ~ v( P* C. \ } ) W; D+ S5 R# j/ x% n; \clearInterval ( fps ); 9 f1 V' P$ R+ Y, b } : Q' l p$ C3 a; v$ O4 p" ^8 b } ; O" D$ M. d ^2 u" d fps = setInterval ( go ); ! r+ R& v6 G. @ 6 k5 h Y5 V- b9 k* P0 [. [ limengdeai
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2025-10-25 03:51

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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