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

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

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

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

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

×
废话不多说 现在开始 % _4 J7 G, Z% K8 a% u. j新见一层动作层 5 g6 }7 X8 Q( O5 \: l; ?# b0 ] + `$ m. n8 X& ? T 在第一帧中加入以下flash代码 % D; o+ `& C( ~! k1 N6 t" hloadMovieNum("http://imgfree.21cn.com/free/flash/67.swf", 1); 6 y7 X% R- Z1 U+ u( R) \0 p/ N loadMovieNum("http://imgfree.21cn.com/free/flash/75.swf", 2); 1 c4 B ~; f8 h4 ?' gloadMovieNum("http://imgfree.21cn.com/free/flash/25.swf", 3); 9 T9 Z' |$ o/ y4 Q) a5 qloadMovieNum("http://imgfree.21cn.com/free/flash/62.swf", 4); # K$ \3 Q+ o! m: }! p" P; p下面我来介绍一下loadmovie 与loadMovienum的区别 : s$ \* Z0 k! \' w L8 R一、loadMovie("url",target [, method]) 描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。 + v: x F# P+ L9 J+ S首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。 $ E5 a5 V% m" @3 }) d 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 ( x7 K5 d0 \* @3 p 这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如: 5 ~) p2 o% @6 c0 EloadMovie("01.swf", _root) ) s! W3 _+ H6 |# p, ] loadMovie("01.jpg", _root) ' @' u. x: R/ S: c" K. W' k6 v/ n loadMovie("http://www.abc.com/01.swf", _root) ! ]% G4 }( f$ f/ `( m( A2 oloadMovie("http://www.abc.com/01.jpg", _root) $ V( C7 e$ j/ E4 l" l 2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。 ( a. F: q- j/ Z! y这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如: loadMovie("01.swf", _root) # U0 {" z! v8 l. h& b loadMovie("01.swf", _root.loading) ' A* t) G) z# e loadMovie("01.swf", _root.loading.01) / h. K+ {9 q. g' |% @0 ` 3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 5 p, T! u5 y/ n7 s) X: e, u 2 g$ N4 [( f& u 二、loadMovieNum("url",level [, variables]) ; k. {! F2 R1 a* _; L* S: d! [2 s描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。 2 j) V* Y, D& j9 z V 首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 % H6 }% h9 o l: }$ K1 B8 z; t 1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。 4 V# z8 H/ H7 j 该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 0 f9 M/ S$ f+ L7 _ c 2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。 1 N: A: z% x0 ^3 f加载的时候,可以这样来写: 3 U8 F2 `% V) n8 Z' I loadMovieNum("01.swf", 1); S0 I' ?1 l, G; bloadMovieNum("01.swf", 2); / L7 _9 I7 J. r0 [) N8 Y f: Y' vloadMovieNum("01.swf", 3); # m4 E; {: M, ^控制的时候,可以这样使用: _level1._x=10 ; $ ~. X' \9 l( P+ \: S _level2.aa._alpha=50 ; 4 C* |6 Y8 ^1 ~1 R7 ` _level3.aa.bb._width=110; & H. Z2 |- d0 z5 B   需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。 1 L$ `7 u: o1 {6 t6 d* V5 h- W3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。 2 W, y) P/ p- k* [1 Q三、loadMovie/loadMovieNum 的定位 / e! z4 O$ q, Z1 s" D" w! M$ L我想,也许这才是大家真正要找的东东:) ; g5 p% G/ L( i, e1.loadMovie的定位 8 D3 v8 q4 Y) w) a* D   由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。 # Y4 m0 Y+ d( B- F' A   比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下: ) _4 O/ J9 p. @* r Y1 \, k/ {) ]' T* Y loadMovie ( "02.swf" , _root . aa ); ! s2 L" [/ n7 ~ _root . aa . _x = 50 ; ; E2 D7 {2 q N3 ? _root . aa . _y = 100 ; * r9 m) I* L2 i) S' a9 s   在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下: 1 [9 E/ f6 A2 k) q. d1 c _root . createEmptyMovieClip ( "aa" , 1 ); 6 H/ A& ^7 S' { j9 Rwith ( aa ) { + W S. b5 [3 v) O8 V3 H D _x = 50 ; : k, _4 X# g$ `% f3 X5 m _y = 100 ; & i+ x% T7 V" p5 Z, jloadMovie ( "02.swf" ); " d+ M# {7 x7 U8 p; x } . G* h! K; A( u 2.loadMovieNum的定位 ' x* _. J' }( N   从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下: - U$ p$ U8 u$ {* }- a) Y" ~- tloadMovieNum ( "02.swf" , 1 ); 9 P1 z# f! ~' [' i" ?6 c: ? _level1 . _x = 50 ; 4 Z' y7 k# ^- O# U% R; V _level1 . _y = 100 ; 2 E) m4 [1 e' d& Y! u" ~9 g   但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢? % I1 w' Q# f3 g" N, _) a原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。 ' [) v) s' t% V' z1 U那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。 2 T2 ^! G7 |5 ^$ R  解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下: . ? M7 Y) Q+ K0 m. J9 x$ [( c loadMovieNum ( "02.swf" , 1 ); ) p# @2 @+ ?+ m5 B5 o8 W8 TonEnterFrame = function () { + S' i1 V2 o. \if ( _level1 ) { 4 }8 P2 d/ _: V( _ with ( _level1 ) { , [7 s3 v& J* A: Y. B$ J_x = 50 ; $ b$ V+ d* f% { _y = 100 ; 6 ^% j2 N$ }" T# D- v- @ } " u& _1 b G' g' O) ]' J$ K/ c delete onEnterFrame ; . j' p) |' B" |; A} 9 g, U- U0 n# ~1 D% v" Z4 d}; K0 y3 R, z6 ]* J% o或者: 5 v8 O- _9 A/ r# I- tloadMovieNum ( "02.swf" , 1 ); ! Q4 [$ n7 k3 O2 ]) k+ U6 v% g function go () { / G: F4 e, E( z9 P7 i% Oif ( _level1 ) { 9 Y( L+ H( M+ j0 x) D4 X+ e2 H& c with ( _level1 ) { 2 X$ i9 K$ p5 K, G5 U2 D_x = 50 ; + Y/ B1 i* m) Q! j) u _y = 100 ; : M# j( s8 } X' O7 P} 5 S7 B( Q6 S; u. h6 p$ D- ? clearInterval ( fps ); a- n l Z. l1 J } . {$ z1 A1 U' M7 V, M } . f2 w) g' @& C4 tfps = setInterval ( go ); / Q. L6 i. S* f& I 4 \4 L$ x R F5 ]" B0 t limengdeai
遨海湾-心灵的港湾 www.aosea.com
您需要登录后才可以回帖 登录 | 入住遨海湾

本版积分规则

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

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

GMT+8, 2025-4-4 23:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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