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

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

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

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

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

×
废话不多说 现在开始 8 P+ e3 P5 O! K5 o1 G 新见一层动作层 ( e7 x* l# k/ i) Y0 L+ g; h * \. u3 c1 `. Y Z在第一帧中加入以下flash代码 7 }* U/ N# a* s/ L) I: c2 ~- n loadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); $ E. T/ Z o# z1 I2 ~ loadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); 1 E$ @' B. E, m s0 E loadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3); h' t, g8 ]: X/ k loadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); / ?! ]. ?2 j2 {! Z下面我来介绍一下loadmovie 与loadMovienum的区别 5 x" F+ U3 e$ w9 d% s) ~- ` 一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 ( V' L- }0 D6 ?/ V 首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 3 l1 a, C ?/ S7 K% ~9 X; I1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 4 E4 v; b, j. w( _& t' q这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: , u- Z4 w3 [6 Z V; O& z loadMovie("01.swf", _root) . f0 F; L- v9 D: h9 J2 G0 _ loadMovie("01.jpg", _root) . r# r5 h) s/ H6 IloadMovie("http://www.abc.com/01.swf", _root) # a- e: N: i P2 G loadMovie("http://www.abc.com/01.jpg", _root) 7 Q. D8 T5 R4 |6 [$ D0 a8 p2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。 4 T7 y: n+ M9 l& z' ` 这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) ( ~. f; G; q, m7 S5 a loadMovie("01.swf", _root.loading) & T1 P: u' L% A- gloadMovie("01.swf", _root.loading.01) 0 d4 w5 W4 e; q# }+ v3 A+ p# U0 V3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 # q' @) y/ ^* l7 m' b8 q' S, u! h: a9 z" r$ s 二、loadMovieNum("url",level [, variables]) 3 Z, N: U0 E& l/ J( B: k0 \" P描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。 - P# v& C( T5 k# `: B首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 % J; k3 ?! x, W+ @; Y( F" t1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 0 T7 |; ^2 z) s5 {该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 + h5 O1 l7 l6 X5 R 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 ' f7 s% |# ]: L, J& J 加载的时候,可以这样来写: ! o8 h [( z) y+ f% O- ] loadMovieNum("01.swf", 1); 9 u& Z) U( P8 d, Z' KloadMovieNum("01.swf", 2); ( S I& j* ^7 M* E) c; K loadMovieNum("01.swf", 3); ' `7 ~3 W2 Z p1 f 控制的时候,可以这样使用: _level1._x=10 ; ' O$ I7 I/ N" Z+ F _level2.aa._alpha=50 ; 0 F8 }5 u% f5 B# ?; p# ]" m_level3.aa.bb._width=110; 9 }. D; {% C1 `  需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 9 u; u. K; n9 n 3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 ) W x& ^# f* m9 a: _* K 三、loadMovie/loadMovieNum 的定位 $ g! s8 E8 p3 x& e$ v' F; m; c6 f我想,也许这才是大家真正要找的东东:) ( i7 @1 w4 u4 M1.loadMovie的定位 : M1 v9 \; R V; o7 V" L4 C, L* |, }4 |  由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。 # O" J5 ~' @0 g5 T. h5 t! B' S$ o6 t  比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: 4 l2 \+ \! v2 \8 G8 N loadMovie ( "02.swf" , _root . aa ); , }& P% r$ B, w: s/ \1 O8 C6 I _root . aa . _x = 50 ; 4 x& G) a/ Q9 Z( p2 {5 M3 B _root . aa . _y = 100 ; 0 V5 Y0 M6 J4 o   在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: * \% D N) C/ _) K( y. ~ _root . createEmptyMovieClip ( "aa" , 1 ); 5 v3 M- N4 L: ~7 U* q/ m with ( aa ) { " q; B9 O( N3 O8 y _x = 50 ; ( O( i& a8 H+ R: h- n% F6 a _y = 100 ; & L8 U% |# S. D7 Y loadMovie ( "02.swf" ); 2 R9 w. y$ p' q# X* b; m8 ` } e) m& X1 U6 c2.loadMovieNum的定位 ; ]: d$ z" e5 J: t5 K- A8 s! e4 @/ ~  从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下: ; x" M+ s- r& oloadMovieNum ( "02.swf" , 1 ); , E. L7 h2 C) n- K _level1 . _x = 50 ; ; I0 Q' S, w' K# v/ x_level1 . _y = 100 ; 3 }3 A* g P) v$ V  但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢? 0 W$ C7 ?, H$ P* h: V6 }4 A! N# A原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 & M9 Y" g9 S* f, A$ A# Z# M那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 ; u. A9 Z. S+ x+ J! a  解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下: % R6 i( R8 Z0 H9 X* P3 A q! e loadMovieNum ( "02.swf" , 1 ); 3 S) k3 w. [+ I( A' w onEnterFrame = function () { z( t+ C/ j$ b+ x; [1 t& W* oif ( _level1 ) { * g. o! z3 z8 t# T/ H with ( _level1 ) { . H, {# K8 Z, P5 g) D, c_x = 50 ; * Q! ^- j! O( x" D, W5 X: v# r2 I_y = 100 ; 2 N0 p% O$ c3 y) E- l' g} 8 u1 n7 z# d( j7 t3 V6 |8 Mdelete onEnterFrame ; " ?8 x# C3 _6 v0 _" U } , r: u5 o% P0 @5 l: e }; 2 j9 d' `5 x2 e3 U7 t7 d 或者: " G1 E+ A2 W& i# t1 Y2 t$ O9 W loadMovieNum ( "02.swf" , 1 ); + y1 T! o/ C$ n$ J! \6 ifunction go () { . M. q7 o% u' J" U% |1 G+ R* L if ( _level1 ) { + }" ~3 D3 }# r" _ V! h/ Y. Y with ( _level1 ) { 9 B' \" i# _! ~/ U7 H8 y, E" E* x# H _x = 50 ; 3 j$ g8 E$ W) t- i+ t) v( @) O9 { _y = 100 ; # H9 L) x4 I8 Z9 ]) U$ m} & x5 S# T) g* ?! R2 b* j4 [- A clearInterval ( fps ); 1 ?, h8 s% {* P# s. h } : j2 I$ P7 N4 @' C. ~/ B8 s} 0 W- N7 F4 [; l8 B4 Q. Yfps = setInterval ( go ); 8 ? d( L1 O% P! z% B ?# B ! }( Q' \( }$ Q M4 b, R limengdeai
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2024-11-24 19:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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