flash精确下载进度条制作
发布网友
发布时间:2022-05-24 15:18
我来回答
共1个回答
热心网友
时间:2023-10-18 15:15
在 Flash 5 里面,我们又有了多一些方法:getBytesLoaded() 和 getBytesTotal()。其中:getBytesLoaded()可以让我们得到已经下载的字节数,而getBytesTotal()则告诉我们该文件一共有多少字节。
就是 Loading 动画的时间线(TimeLine),从 loop 开始到 end 前面一帧就是整个循环,由 end 开始就是真正的动画影片了。
loop 那里有一段最关键的脚本,是进行运算和显示用的,我们先把画面上出现的元素做一下介绍:
其中,load_bar 是一个动画片断(MovieClip),它共有100帧,整个片断是一个从左到右填充的过程,我们可以通过这个来实现状态条的显示。
下面,让我们看看 loop 的脚本是怎么写的:
byteloaded = _root.getBytesLoaded(); //取得目前下载字节
bytetotal = _root.getBytesTotal(); //取得需要下载字节
loaded = int(byteloaded /bytetotal * 100); //取得下载百分比
t = getTimer (); //取得下载时间
// K
percent = loaded + "% ( " + int(byteloaded/1000) + " K / " + int(bytetotal/1000) + " K )";
percent = percent + "\r下载速度:" + int(byteloaded/t * 100)/100 + " K/s";
load_bar.gotoAndStop( loaded ); //跳到 load_bar 指定的位置停下
// Time
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 + "\r" + "剩余时间:" + timeremain; 其实就是很简单,不是么?我们在取得时间以后,通过计算就可以得到大概需要的总的时间:
已用时间 已下载字节
---------------- = --------------------------
剩余时间 (总字节 - 已下载字节)