最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 网络设计学院 > Flash教程

Flash中加载影片时,Loading的位置对影片的影响

日期:09-11    来源:网页设计秀    作者:cnwebshow.com

在论坛经常看到Loading加载方式的探讨,不过大多都是讨论用何种加载方法及代码,今天我想对Flash中加载影片时,Loading的位置对影片的影响.Flash Loading有多种制作及加载方式,本文研究的重点是讨论主影片中加载外部swf文件时Loading的位置对影片的影响.也就是将Loading写在主影片内部还是被加载影片中.

    首先从缓存进行考虑,由于浏览器可以缓存Flash文件,因此Loading放在主影片内部,或者被加载影片中都没有影响,浏览器第一次会自动缓存这些文件.从操作以及维护上进行分析,在主影片上的Loading可以写成一个函数,然后加载外部SWF文件时可以调用这个函数,维护方便,另外如果是加载jpg等图片时候也可以使用Loading.放在被加载的外部文件中具有不同影片的Loading相互独立,可以制作多种Loading效果.从响应以及加载速度上分析:[同一主文件及外部加载文件,Flash MX2004Professional]
1: 对主文件内部Loading加载外部文件进行测试:
在主文件中新建一个按钮和一个名称为jindutiao的进度条影片,AS代码如下:

on (press) {

       t1 = getTimer();

       _root.createEmptyMovieClip("m1_mc", 2);//建立一个空MC

       m1_mc.loadMovie("1.swf");//加载文件名为1.swf的外部文件

       m1_mc._visible = false;

       _root.onEnterFrame = function() {

              t2 = getTimer();

              var l = m1_mc.getBytesLoaded();//取得下载字节数

              var t = m1_mc.getBytesTotal();//取得SWF总字节数

              per = int((l/t)*100);//per是动态文本框

              if ((l>=t) && (t>0)) {

                     t3 = getTimer();

                     trace(t3);

                     trace(t3-t2);

                     trace(t2-t1);

                     delete this.onEnterFrame;//删除帧触发事件

                     m1_mc._visible = true;//使MC可见

                     jindutiao._visible = false;//使进度条可不见

                     m1_mc._x = 0;//调整位置,也可调其它属性

                     m1_mc._y = 0;

              } else {

                     jindutiao._visible = true;

                     setProperty("jindutiao", _xscale, per);

              }

       }

}

参数:
将Loading代码写在主文件内部时,主文件大小为3792字节,加载文件702539字节,在33400B/S的带宽下进行5次测试,时间分布如下:

21034ms

21048ms

21021ms

21060ms

21082ms

平均:21049ms,两个影片总字节数:706331
2: 对主文件加载包含Loading的外部文件进行测试:
主影片中新建一个按钮和一个名称为jindutiao的进度条影片



              _root.m1_mc._x = 0;

              _root.m1_mc._y = 0;

       }

       }



在被加载的外部文件中写Loading的AS代码:



第一帧:

total = getBytesTotal();//注意,不要用_root.getBytesTotal();因为避免被加载到主影片时会产生路径问题

loaded = getBytesLoaded();

baifenshu = int((loaded/total)*100);

baifenbi = baifenshu+"%";

setProperty("jindutiao", _xscale, baifenshu);

t = getTimer ();

第二帧:

if (baifenshu == 100) {

       trace(t);

       gotoAndPlay(3);

} else {

       gotoAndPlay(1);

}

参数:
将Loading代码写在被加载的外部文件时,主文件大小为3395字节,加载文件702971字节,在33400B/S的带宽下进行5次测试,时间分布如下:


21038ms

21094ms

21033ms

21038ms

21030ms

平均:21046.6ms,两个影片总字节数:706336
两种方式加载的区别不是很明显,因此可以根据不同需要选择适当的加载方式.