新手上路
入门动画
高级创作
 
总体导航图
学习指南
当前位置:多媒体应用基础>>多媒体创作工具>>FLASH专区>>高级创作>>精确下载制作
高级创作

精确下载制作

 

在网上播放swf(flash的生成文件)时,由于网络的传输速率问题,影片的播放总是断断续续;于是,在影片开始前做一个loading过程,等整个影片(或部分影片)已经下载到本地机时,再开始播放,就很有必要了。

现在我们来制作一个精确下载的例子,在这个例子中,将模拟影片下载的过程,显示下载进度条、百分比以及目前下载时间和剩余下载时间。 主要实现方法是,在影片开始之前,做一个循环,在循环中编写script(脚本) 判断影片是否已全部下载,如果是,则跳到循环,开始播放。

在 Flash 5 里面,我们又有了多一些方法:getBytesLoaded() 和 getBytesTotal()。其中:getBytesLoaded()可以让我们得到已经下载的字节数,而getBytesTotal()则告诉我们该文件一共有多少字节。

图3-3是 Loading 动画的时间线(TimeLine),从 loop 开始到 end 前面一帧就是整个循环,由 end 开始就是真正的动画影片了。

 
图3-3

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 指定的位置停下。byteload/1000中是1000而不是1024

// Time

timeloaded = int(t/1000); //取得目前下载所用时间(秒),FLASH中时间计算是用毫秒的,所以要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;

load_bar是一个显示状态的动画片段,是在等待下载的时候显示的动画。

请在理解的基础上制作本例子,具体的实现留给读者去制作,因为核心的部分已经给出来了,请读者发挥自己的聪明才智,制作出个性的、精确的片头loading。

¨flash编程基础¨ ¨精确下载制作¨ ¨制作音乐开关按钮¨ ¨洋葱皮效果¨
¨制作动画控制面板¨ ¨结合asp制作留言板¨ ¨用Generator作后台数据库¨ ¨使用新技术xml¨