|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
使用loadMovie可以动态的载入外部文件,从而减少主文件的体积,有利于网上下载,以及对各项子文件的修改,更换。假如没有做过FLASH网页,可以看看这个FLASH网页的基本组成情况,见图2-2-1 只需要把图中的主文件和子文件用比如ftp工具传到自己的空间上,就可以轻松的实现只下载主文件,假如需要浏览的子文件就可以单独下载,可以想想,假如你的整个FLASH网页不分主次,全部统一个FLASH,做成了几M甚至10多M,那么有谁愿意等着看你的网页呢?除非你自己。 于是使用loadMovie就显得很重要了。现在就让我们从基础开头,然后去分析使用loadMovie所涉及到的详细问题吧。使用loadMovie有两种基本的方式:(一)将外部swf文件载入到某一层上。(二)将外部swf文件载入到时间轴的某个影片剪辑中。对这两种方式的使用,用图表示更加直观些。见图2-2-2 第二种方式又可以这样写:_root.mc.loadMovie(“a1.swf”);假如a1的后缀名为 jpg那么载入的是外部图片。载入图片与载入swf文件的道理是相同的,就不赘述。说到这里还比较空洞,做一个实例来看看。 一、新建一个文件夹,任意取一个名字 比如:mywangye 二、做一个Flash发布成swf文件并且取名字为a1,保存在mywangye这个目录中,这个a1就是我们要载入的子文件。 三、然后做主文件,由于我们是做最简朴的,所以什么也不画,就在这个主文件的第一桢,写 loadMovie(“a1.swf”,1) 同样将这个文件保存在mywangye目录中,取个名字叫index 四、测试效果,源文件见本文后的打包中的01文件夹 然后用上面图中的第2种语法,继承做一个,注重了,第二种方式需要在舞台上放一个mc并且取一个实例名,或者创建一个空的MC。做了上面的小实验后,我们可以总结些什么结论呢?假如仅仅是得到可以加载外部文件这么一条结论的话,那么就太肤浅了。可以让我们想到:被加入进来的外部文件的坐标问题;长宽问题;外部文件比较大,造成的加载延时问题;如何访问被加载进来的swf的问题;不要加载了,卸载问题…..这些问题我们假如不研究下,真正在做网页的时候,会碰到很多麻烦的。 由上面的最简朴的加载我们可以得到这样的结论:(1)假如采用加载到层上的,加载进来后默认注册点是舞台的左上角;假如采用加载到mc里面的,那么默认注册点是MC的注册点。假如MC的注册点是左上角,那么被加载进来的SWF文件就与MC的左上角对准;假如MC的注册点是中央,那么加载进来的SWF就把左上角与MC的中央对齐。(2)被加载进来的MC保留原来的长宽比例。 问题一:如何控制被加载进来的SWF文件的坐标和长宽比例大小? 控制被加载进来的SWF文件控制其长宽要采用onEnterFrame,比如: on (press) { 为什么用 onEnterFrame呢?因为被加载进来的的过程中,有点延时,假如没有onEnterFrame语句,那么语句读取一次就不读取了,然而读取了这一次之后,还没有加载进来,所以就会导致坐标大小设置无效。同样,假如加载到层上,也是这样的。 on (press) { 请注重这两种方式,第一种,把外部的a2加载到mymc中,加在进来后,a2就自动的替换了mymc,我们直接设置mymc的属性就设置了被加载进来的swf的属性。第二种方式,_level是对于加载到时间轴上的电影的引用,加载到第2层就是_level2;加载到第3层就是_level3。 问题之二:如何实现点击按钮加载一个外部SWF文件,并且要显示加载的下载进度呢? 有两个方式来实现这个效果,其一:把加载londing写在主文件中,其二,被加载的子SWF文件有自己的londing。现在分别给予说明。 其一:在主文件中写londing 外部子swf文件名为a1,主文件中有一个动态文本框名为loadText,一个按钮名为bbt,现在把loadMovie和londing写在桢上。 _root.bbt.onPress = function() { 其二:子文件中有自己的londing 这个写法与前面说的londing相同,只是注重一个问题就是注重路径的问题,比如这样写: 第一祯 loaded = getBytesLoaded(); 第二祯 if (lts == 100) { 和前面的londing中介绍的比较,看出不同之处没有呢?仅仅是去掉了_root因为被加载后,外部SWF文件就相称于主文件中的一个MC 有了_root 就是指向主文件的_root 了,当然会显示错误。 问题三:我想在舞台上画一个屏幕,然后点击一个按钮就载入一个外部swf进行播放该怎样做呢? 那么我们就来一起做一个相册吧。当主文件载入后,单击按钮就载入一个外部swf 文件,并且都有londing显示。首先我们做好以下预备工作:(1)预备几张图片,现在我们预备7张,6个子文件一个一张,主文件用一张。(2)主文件舞台大小为了适应网页的需要,设置为770*420。子文件舞台大小设置为512*384,这样就不需要载入后控制大小了,方便些(其实我们应当这样,省去一些麻烦。 一、制作子文件。每个都用来显示图片,第一和第二祯写londing,第三祯~~二十祯根据自己的兴趣做点亮度变化,以产生动感,最后一祯写上stop()。第一和第二祯的londing如下 第一祯 loaded = getBytesLoaded(); 第二祯 if (lts == 100) { 就这样如法炮制的制作6个,分别命名为b1…..b6都发布成swf文件。保存在一个文件夹中。 二、制作主文件 第一祯用来写londing,第2祯放一些像屏幕相同的东西,和按钮,为了增加效果,放一个音乐在时间轴上。 第一祯的londing//由于前面已经说得多了,就不赘述了 stop(); 第2祯的按钮上的AS on (press) { 偷点懒,就不具体的赘述其含义, 我们也可以用很长的语句来实现一样的效果,这种写法是对AS的一种浓缩。 详细情况请参看原文件。 问题四:我想逐次载入多个外部文件,当第一个载入播放完毕后,立刻载入第2个,第二个播放完毕后,立刻载入第3个 ,……,直到结束。怎么办? 首先对这种提问,我们先要质问一下提问的人,这样做有什么意义? 与其这样,不如全部做到一个SWF中,因为每次调用一个外部SWF的时候,需要一定的时间来等待下载。当然,假如你想制作一个连续剧,播放完了一个后,用londing下一集的londing画面显示“正在载入下集,请稍候”那么还是可以的。 方式很简朴:依照问题三的原文件,轻微修改,去掉一个按钮,用一个按钮载入第一个,然后再第一个的最后一祯放个调用主文件中的函数即可。 按钮: on (press) { 主文件定义的函数 function go2() { 第一个b1 SWF的最后一祯_root. go2(),第二个外部SWF的最后一祯 _root.go3()……….. 返回类别: Flash教程 上一教程: 鼠绘完全接触-概述篇 下一教程: Flash MX pro的历史面板(三) 您可以阅读与"loadMovie问题全解"相关的教程: · loadmovie后的swf里的元件的复制问题 · Flash AS学习:讲解Movie Clip Depth(深度)的问题 · Flash:loadMovie/loadMovieNum使用详解 · PNG图片遮罩问题 · Flash Player 8安装问题的解决 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |