loadMovie问题全解
来源:互联网 发布:python web 编辑:程序博客网 时间:2024/06/11 18:05
使用 loadMovie可以动态的载入外部文件,从而减少主文件的体积,有利于网上下载,以及对各项子文件的修改,更换。如果没有做过FLASH网页,可以看看这个FLASH网页的基本组成情况,见图
只需要把图中的主文件和子文件用比如ftp工具传到自己的空间上,就可以轻松的实现只下载主文件,如果需要浏览的子文件就可以单独下载,可以想想,如果你的整个FLASH网页不分主次,全部统一个FLASH,做成了几M甚至10多M,那么有谁愿意等着看你的网页呢?除非你自己。
于是使用loadMovie就显得很重要了。现在就让我们从基础开头,然后去分析使用loadMovie所涉及到的具体问题吧。使用loadMovie有两种基本的方法:(一)将外部swf 文件载入到某一层上。(二)将外部 swf文件载入到时间轴的某个影片剪辑中。对这两种方法的使用,用图表示更加直观些。见图
第二种方法又可以这样写:_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) { loadMovie("a2.swf", "_root.mymc"); onEnterFrame = function () { _root.mymc._x = 0; _root.mymc._y = 0; _root.mymc._width = 330; _root.mymc._height = 240; }; } on (press) { loadMovie("a1.swf", 1); onEnterFrame = function () { _level1._x = 17; _level1._y = 30; _level1._width = 330; _level1._height = 240; }; }
问题之二:如何实现点击按钮加载一个外部SWF文件,并且要显示加载的下载进度呢?
有两个方法来实现这个效果,其一:把加载londing写在主文件中,其二,被加载的子SWF文件有自己的londing。现在分别给予说明。 其一:在主文件中写londing 外部子swf文件名为a1,主文件中有一个动态文本框名为loadText,一个按钮名为bbt,现在把loadMovie和londing写在桢上。 _root.bbt.onPress = function() { _root.createEmptyMovieClip("mc", 10); mc.loadMovie("a1.swf"); mc._visible = false; _root.bbt.onEnterFrame = function() { var l = mc.getBytesLoaded(); var t = mc.getBytesTotal(); var getPercent = l/t; loadText = Math.round(getPercent*100)+"%"; if (l>0 && l>=t) { mc._visible = true; delete this.onEnterFrame; } mc._x = 10; mc._y = 10; mc._width =440; mc._height = 320; }; };
这个写法与前面说的londing一样,只是注意一个问题就是注意路径的问题,比如这样写:
第一祯 loaded = getBytesLoaded(); total = getBytesTotal(); lts = Math.round((loaded/total)*100); wenben = lts+"%"; if (lts == 100) { gotoAndStop(3); } else { gotoAndPlay(1); }
问题三:我想在舞台上画一个屏幕,然后点击一个按钮就载入一个外部swf进行播放该怎样做呢?
那么我们就来一起做一个相册吧。当主文件载入后,单击按钮就载入一个外部swf 文件,并且都有londing显示。首先我们做好以下准备工作:(1)准备几张图片,现在我们准备7张,6个子文件一个一张,主文件用一张。(2)主文件舞台大小为了适应网页的需要,设置为770*420。子文件舞台大小设置为512*384,这样就不需要载入后控制大小了,方便些(其实我们应当这样,省去一些麻烦.
一、制作子文件。每个都用来显示图片,第一和第二祯写londing,第三祯~~二十祯根据自己的爱好做点亮度变化,以产生动感,最后一祯写上stop()。第一和第二祯的londing如下
第一祯 loaded = getBytesLoaded(); total = getBytesTotal(); lts = Math.round((loaded/total)*100); wenben = "数据下载中 "+lts+"%"; if (lts == 100) { gotoAndPlay(3); } else { gotoAndPlay(1); }
二、制作主文件
第一祯用来写londing,第2祯放一些像屏幕一样的东西,和按钮,为了增加效果,放一个音乐在时间轴上。
第一祯的londing//由于前面已经说得多了,就不赘述了 stop(); i = 0; onEnterFrame = function () { // 使用不断触发的事件 loaded = _root.getBytesLoaded(); total = _root.getBytesTotal(); var aa = Math.round((loaded/total)*100); _root.dongtai.wenbens = aa+"%"; _root.dongtai._x = 188+aa*3; _root.bb._width = aa*3; if (aa>=100) { // 检测到满足条件就跳出来,否则继续循环 _root.gotoAndStop(2); delete this.onEnterFrame; // 使用delete的目的是当完成下载后销毁onEnterFrame事件,以节约资源的消耗。 } };
第2祯的按钮上的AS on (press) { _root.i++; if (i == 7) { i = 6; } loadMovie("b"+i+".swf", "_root.mc"); _root.tishi = "第"+i+"张图片"; }
具体情况请参看原文件。
问题四:我想逐次载入多个外部文件,当第一个载入播放完毕后,立即载入第2个,第二个播放完毕后,立即载入第3个 ,……..至到结束。如何办?
首先对这种提问,我们先要质问一下提问的人,这样做有什么意义? 与其这样,不如全部做到一个SWF中,因为每次调用一个外部SWF的时候,需要一定的时间来等待下载。当然,如果你想制作一个连续剧,播放完了一个后,用londing下一集的londing画面显示“正在载入下集,请稍候”那么还是可以的。
方法很简单:依照问题三的原文件,稍微修改,去掉一个按钮,用一个按钮载入第一个,然后再第一个的最后一祯放个调用主文件中的函数即可。
按钮: on (press) { loadMovie("b1.swf", "_root.mc"); } function go2() { loadMovie("b2.swf", "_root.mc"); } function go3() { loadMovie("b3.swf", "_root.mc"); } function go4() { loadMovie("b4.swf", "_root.mc"); } function go5() { loadMovie("b5.swf", "_root.mc"); } function go6() { loadMovie("b6.swf", "_root.mc"); }
- loadMovie问题全解
- loadMovie问题全解
- loadMovie加载外部swf的大小问题
- 使用 LoadMovie 制作纯FLASH网站 问题心得
- 背包问题全解
- loadMovie/loadMovieNum使用详解
- loadMovie/loadMovieNum使用详解
- loadMovie/loadMovieNum 使用详解
- loadMovie与loadMovieNum区别
- 纠结的loadmovie
- loadMovie 定位
- MySQL字符集问题全解
- 在线音乐播放问题全解
- jsp乱码问题全解
- 不要对loadMovie()太“心急”
- 关于loadMovie的简单测试
- 编码问题 java编码全解
- Spark 序列化问题全解
- 浮动广告
- 一日三餐
- ANT 在项目中的使用
- 端口扫描程序(java)
- Skype豪赌VoIP 电话革命蓄势待发--Skype通话质量还不错哦!
- loadMovie问题全解
- 今天在http://blog.csdn.net上建立了自己的Blog
- 《没有任何接口》读书笔记_20041010:随时都要有压力
- JAVA程序员眼里的C#(转)
- 即使囫囵吞枣,也要坚持把整本书读完!
- 关于mutilbox 和 checkbox
- TI的LDO是个好东东!
- G.F
- [转]当层遇到了select框时