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

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

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

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

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

×
废话不多说 现在开始 & ~: w, y. B5 r$ X4 o. Q 新见一层动作层 $ }7 U, j! p+ o" q5 N3 X " W# E/ p+ c0 `' ?0 I 在第一帧中加入以下flash代码 7 i U# }2 y6 XloadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); 1 d& a* ]" Z: a& x9 c( B& y1 ? loadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); - m. _/ |' X2 H& h! y7 WloadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3); 8 F* `8 }9 ?( y& h# l7 zloadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); # M8 O D' u+ N! d# m. w: P' c/ @" ] 下面我来介绍一下loadmovie 与loadMovienum的区别 , M4 j; Y/ @7 T" y2 q ^; F一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 - O! k; `) c# l, q首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 6 @9 J' n7 \& K' q- h1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 7 Q ]/ w+ c4 l# g3 m这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: - A6 e% `- b, \4 c loadMovie("01.swf", _root) & x& M5 U6 a7 p/ l. K, p! r9 AloadMovie("01.jpg", _root) . z, L/ f n5 v$ W8 r7 U! `loadMovie("http://www.abc.com/01.swf", _root) F, H/ ^+ _/ W& ~2 T+ c' LloadMovie("http://www.abc.com/01.jpg", _root) # Q; N2 z: q* ~* j! I! g7 ^2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。 5 H6 w1 V/ o9 ]3 F) H 这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) ( u4 G! |7 W% S. | GloadMovie("01.swf", _root.loading) , j1 O0 m" Z9 i* d6 jloadMovie("01.swf", _root.loading.01) % C/ @$ I" o! A. `1 V 3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 \* e% i6 Z+ Q0 l! K8 |! D z8 B' W, O9 U 9 j; u8 j: Y" ]' ^: j. w* u 二、loadMovieNum("url",level [, variables]) " M3 r/ [/ n" { K7 q: q. k 描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。 ' n5 d# a) H4 D1 v 首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 9 A% w' y1 [5 S3 y5 t1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 * O9 h7 A0 l9 z 该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 + [; X) h2 B9 `% u" o [2 j; s# x T2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 3 u( u( {# Y. [( |% p& D6 Y 加载的时候,可以这样来写: 3 c+ d/ M: l$ DloadMovieNum("01.swf", 1); ' ]* K7 `/ }! r4 G5 B t loadMovieNum("01.swf", 2); " T! v9 g2 Y- j7 H; ~3 `loadMovieNum("01.swf", 3); / M( \: }" T3 B7 | 控制的时候,可以这样使用: _level1._x=10 ; ; N+ P& ~7 S8 |# f Y4 I4 O+ R _level2.aa._alpha=50 ; % T6 {* o# ^ w0 f$ E8 I2 l( e8 k* Q0 o_level3.aa.bb._width=110; ' `( T6 R9 [2 R2 D6 M0 h   需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 " [& X# z: l3 U5 ~! D7 E; ? 3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 % G# c* s1 @1 M3 P- y ?5 M三、loadMovie/loadMovieNum 的定位 6 @# t0 J: \3 Z6 p3 J我想,也许这才是大家真正要找的东东:) - c$ r: f, N8 Z& O6 f2 }+ \1.loadMovie的定位 ; X, Q- s8 y% \( N  由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。 " z8 N Y6 p, K- w2 O. x   比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: - U' n: r2 Z, R3 Y7 Y2 }! wloadMovie ( "02.swf" , _root . aa ); * I1 C( w' W/ s0 p _root . aa . _x = 50 ; - c* d2 r. o, a _root . aa . _y = 100 ; ! q% l. O# K% ?" R   在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: # M+ `$ V$ [9 M_root . createEmptyMovieClip ( "aa" , 1 ); - S x- e3 S/ y8 Bwith ( aa ) { ) ?, y. w; |# N2 M' z! u: c, n S_x = 50 ; 6 y3 F! }, b# H( E9 z d _y = 100 ; , H; N T- Q6 p9 b8 N) cloadMovie ( "02.swf" ); 1 c" @) k7 K8 { @$ g} * E0 F r- d% d& y% {3 n6 p" M 2.loadMovieNum的定位 1 v, b* ?, H8 E  从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下: 4 e8 r4 B- ~* PloadMovieNum ( "02.swf" , 1 ); ( M# _7 p3 m* R1 S _level1 . _x = 50 ; L* f, y7 x" X: |_level1 . _y = 100 ; ( a+ K$ x5 K& I7 h5 M/ L3 ^% B   但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢? . Q3 ]( i9 h" V0 j4 K4 `/ t& a. @7 ]原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 / f' V% _0 V9 i' u( U" n 那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 . n' w* R: t ]3 d   解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下: & L) E( R9 { H/ C$ [+ M+ y& O: T loadMovieNum ( "02.swf" , 1 ); + t) P% A: L1 j, m D6 b- q8 R, E onEnterFrame = function () { * h# g* k/ v9 }" g& m* @ ~) y1 [- F: oif ( _level1 ) { % b0 Y- ?6 m0 n; \& V. twith ( _level1 ) { 3 b& b* g0 P% u* o9 g_x = 50 ; + l0 a. J4 T7 ]9 _ _y = 100 ; + C4 E ?9 a H. q7 ~' z# P. s. S} 3 F& R, c/ `' Y! ?' N) Ydelete onEnterFrame ; - D6 [3 Q8 D% q } * F. y8 F% E; j' I. U}; 6 d) {& h1 s5 l' T" D或者: ; g% c. W9 \" U% |5 N2 U) {7 N3 X* B% CloadMovieNum ( "02.swf" , 1 ); & u; e' l, z# r0 @function go () { " W) O5 x' g$ y% N, s6 N; z if ( _level1 ) { 1 h- U/ V' h* \$ p2 J1 G# kwith ( _level1 ) { % @) U' X& S4 N5 _6 T_x = 50 ; $ f; D3 H# H+ r! { _y = 100 ; # D" R* z4 M* e/ ^+ | } - H E0 d9 x$ S- F, f* v clearInterval ( fps ); ( |' J4 i; ~5 ^( c# x& N } 9 D1 O% Z6 |; O( N; N0 P! k } ; w$ ~- \, f3 s. x4 Q% Z fps = setInterval ( go ); I' G0 E7 {' r% K- o $ y1 f8 E* p$ b D' u1 H) @: f3 [ limengdeai
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2025-4-25 02:10

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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