Flash网页制作之详谈loading的制作
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
大家知道,当Flash影片或者网页体积相当大的时候,等待页面的出现是非常枯燥的,所以loading的概念就产生了 loading的制作方法有许多许多种,今天详谈一种。 好了,转入正题。 首先,CTRL+F8新建一个电影剪辑(MC),命名为loading。 然后,进入这个MC,做一个方框,不带边框,只留填充色,选中方框,按F8转换为图形元件。然后按F6在第100帧做一个关键帧。回到第一帧,用自由变形工具(Q),将loading条从左或右像中间拖,拖至一条线为止,然后从第一帧做补间。这样loading动画就是一个从中间向两边延伸的,至于为什么要做100帧的渐变动画,那就是配合100%的AS咯,到100%下载的时候,这个条就延伸完毕咯! 接下来,将名字为loading的MC拖入场景种的第一层,放到合适位置,点F5延长一帧。将MC实例命名为loading。 然后进入我们的AS部分。 在主场景中新建一层,点击F6延长出一个关键帧,因为第一帧是空白帧,所以第二帧也延长出一个空白关键帧了。 第一帧写入AS: a=getBytesLoaded(); //a定义为getBytesLoaded() b=getBytesTotal(); //b定义为getBytesTotal() loaded=int(a/b*100); //定义为a除以b再乘以100,目的是求个百分整数,其实对于这个loading的效果不大,不过打个基础,对于以后功能详细的loading有用。 loading . gotoAndPlay( loaded ); //loading这里就是场景中实例命名的那个loading,在下载的同时,运行这个MC,配合上面的百分整数显示整个下载过程。 第二帧写入AS: if(a==b){ //如果a的值,就是下载的总值等于flash本身的总值,执行下列语句 nextScene(); //转到下个场景,这里可以看到,这里的主动画和loading场景是不同的,所以我们要用shift+f2再建立一个新场景,放入主动画,而且必须在loading场景的下面。 }else{ //其他情况,就是说a不等于b,多半是没有load完的情况下、 gotoAndPlay(1); //回到第一帧,这样做一个循环,当loading不成功的情况下,回到第一帧重新执行下载。 } 这样就完成了,切记,主动画要放在另外一个场景且在loading场景之下。 这次我们介绍用AS配合动态以及静态文本来完成显示详尽下载进程,临时再决定加上百分数的显示。 上次介绍了进度条,这次就不说了,直接进入百分数以及下载进程。 首先在场景用静态文本在合适的7个合适的位置分别写上:总字节数、已下载字节数、总帧数、已下载帧数、需要时间、实际已用时间和“%”,然后时间轴上用F5延长出一个帧。 然后分别在前六个的右边用动态文本拉出6个合适大小的框,不写任何东西,在“%”的右边用动态文本拉出一个3个字位数的框。 然后分别在属性框里给对应静态文本的动态文本框加变量: 总字节数:aby 已下载字节数:bby 总帧数:af 已下载帧数:bf 需要时间:at 实际已用时间:bt %:loaded 然后新建一层,命名为AS(这并不重要,但是养成一个会分门别类的好习惯,大家以后看我放的源文件,不管是层名、还是库里面,我都会分门别类放好,多的时候会建立相应文件夹,这样方便大家找到源文件里面想要的东西),点F6延长出一个关键帧 然后第一帧写入as: a=getBytesTotal(); //b定义为已下载总字节数 b=getBytesLoaded(); //a定义为需要下载的总字节数 loaded=int(b/a*100); //给变量名为loaded的动态文本框显示出需要下载字节数与已下载总字节数的百分比,想但简单,就是一个数学式,b除以a再乘以100 aby=_root.getBytesTotal(); //给变量名为aby的动态文本框显示出需要下载的总字节数 bby=_root.getBytesLoaded(); //给变量名为bby的动态文本框显示出已下载总字节数 af=_root._totalframes; //给变量名为af的动态文本框显示出总帧数 bf=_root._framesloaded; //给变量名为bf的动态文本框显示出已下载帧数 at=int(((aby-bby)/(bby/bt))+bt); //给变量名为at的动态文本框显示出总时间,这里也看得出是一个数学式 bt=int((getTimer())/1000); //给变量名为bt的动态文框显示出已用时间,1000是以毫秒计的。 然后在第二帧写入as: if(a==b){ //如果实际下载的总字节数等于需要下载的总字节数那么,接下句 nextScene(); //转到下一个场景,也就是说还跟昨天一样,要将主动画放到loading场景之下的一个场景 }else{ //其他的,也就是以上条件不能达成 gotoAndPlay(1); //回到并播放第一帧,这样做一个循环,下载不成功就做到重新下载。 } 这样就全部完成了,大家看到AS跟数学非常有关系,int这个语句其实是Mathround的简化方式,而大家在第二帧第一行里面的if(a==b)注意千万不要写成a=b,=是赋值,==才是等于,大家切记。 关键词:网页 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: [字梦原创]鼠标跟随效果教程下一篇: [原创]flash的麦克风对象的介绍
关于Flash网页制作之详谈loading的制作的所有评论