典型loading的as分析 |
| 作者:佚名 来源:闪吧 作者: amonline 更新:2007-1-13 20:49:45 错误报告 我要投稿 |
现在有很多朋友都做flash,都用loading,而且下一个loading 原文件也很方便,有的朋友在熟悉了使用以后,想了解这些as 的原理,我在这里说一下我的个人理解,请包涵。
 这是一个比较正规的loading这是他在第一帧的as:
byteloaded = _root.getBytesLoaded(); bytetotal = _root.getBytesTotal(); loaded = int(byteloaded /bytetotal * 100); t = getTimer (); percent = loaded + "% ( " + int(byteloaded/1000) + " K / " + int(bytetotal/1000) + " K )"; percent = percent + "下载速度:" + int(byteloaded/t) + " K/s"; load_bar.gotoAndStop( loaded ); timeloaded = int(t/1000); timeremain = int(timeloaded * (bytetotal- byteloaded) / byteloaded); timeremain = int(timeremain / 60) + "分''''" + int(timeremain % 60) + "秒""; timeloaded = int(timeloaded / 60) + "\''''" + int(timeloaded % 60) + "\""; downloadtime = "已用时间:" + timeloaded + "剩余时间:" + timeremain;
首先要说明的是int是取整数的意思。 我们可以知道byteloaded是已经下载的比特数, bytetotal是文件整个的比特数, loaded是已经下载的百分比, t是工作到现在的毫秒数, 第一个percent是已经下载的百分比+已经下载的K数/总体的K数,形如:80%(1.2K/1.5K) 第二个percent是第一个percent+下载速度+K/s,本来下载速度应该是int(byteloaded*1000/t*1000)的就提前约分了吧,呵呵 形如:80%(1.2K/1.5K)下载速度:50K/s,这样percent是表示下载数文本框的ar, load_bar.gotoAndStop( loaded )是关键,也就是你的进度条的长度到已经下载的百分比上停止, 我们的目的是让下载数与进度条同步!也既下载数与进度条长度是一一对应的!也就要注意你的进度条在scence 的名字是load_bar, timeloaded是工作到现在的秒数,既工作到现在的毫秒数/1000,这是一个中间变量,一会儿就变了, 第一个timeremain是通过目前的进度预测剩余的秒数,这个应用方程会解吧,呵呵 第二个timeremain是在第一个timeremain的基础上算出是几分几秒,大家看int(timeremain / 60)是算分, int(timeremain % 60)是算秒, 同理第二个timeloaded是在第一个timeloaded的基础上算出是几分几秒, downloadtime就简单了,大家都可以看出来了。 注意的是: (1)进度条在scence 的名字是load_bar (2)一个文本框的ar是percent (3)一个文本框的ar是downloadtime 这是他在第十三帧的as:
if (byteloaded == bytetotal) { gotoAndPlay("end"); } else { gotoAndPlay("loop"); }
就是说,没下载完继续下载, 下载完就不下载了(废话),播放下载完的动画。 这是一个原文件:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |