ccidnet????

出版日期:2000-01-10 总期号:891 本年期号:03

本期导读
要闻综合
电脑工作室
市场
硬件
软件
infotimes
用flash 4制作下载进度条

简武

  原理:进行流化处理的flash电影可以在最初的几帧下载后就开始播放,我们可以在电影的开头放入一个loading场景,然后用actions中的“if frame is loaded”命令来判断电影的某一帧是否已经下载,并且在loading场景制作相应的动画来大致显示进度。


  一、制作loading动画


  1.打开一个准备加入loading进度条的电影文件,将原来的场景重命名为movie,新增加一个场景loading(用insert/scene命令);执行window/inspectors/scene命令打开场景检查器,将loading场景移动到movie的前面(增、删、改名等也可以在这里完成)。

  2.切换至loading场景,将第1图层改名为checkload,用矩形工具绘制一个浅灰色矩形条;用文字工具在矩形条上下方写入提示文字“正在下载,请稍候……”和进度条大致刻度;在第40帧处单击执行insert/frame命令补齐全部帧,使其在40帧中都保持不变。


  图1

  3.新增一个图层loading,单击矩形工具按钮,将前景色改为红色,在灰色矩形框的左端绘制一小段矩形块,至此设计窗口如图1所示。

  在第40帧处增加一个关键帧(insert/keyframe),右击红色小矩形块,在弹出选单上选择scale(变形)命令,矩形块四周就出现了小移动块,向右拉动放大直到添满灰色矩形框;单击油漆桶工具按钮,前景色选取绿色后填充变形后的矩形块。

  右击第1帧,在快捷选单中选择properties命令,单击tweening选项卡,在tweening栏中选择shape模式,如图2所示。

  这时loading动画就完成了,您可以播放试试:红色矩形块逐渐伸长,同时颜色也在变化,最后变成绿色时刚好到达100%处填满灰色矩形框。但现在它还不能真正起到提示下载进度的作用,下面来设置几组检查点。


  二、设置检查点


  1.切换到checkload图层,在第10、11帧处分别插入一个关键帧。

  2.右击第10帧,选择properties命令,切换到actions选项卡,单击左上角带小三角形的+号按钮,在弹出的选单中选择“if frame is loaded”,下面的列表中将出现两行命令;在右侧的参数设置区的scene栏中选择场景movie,frame栏选择number单选项,后面输入10。执行该命令就是检查场景movie的第10帧是否已经下载。


  图2

  再添加一个命令“go to”(自动加入到原来两行命令中间),在右侧参数区的scene中选择loading,帧号输入12;同时选中下面control栏中的go to and play选项,结果如图3所示。这一命令的作用就是一旦检查到场景movie的第10帧已经下载,就跳到场景loading的第12帧并继续播放电影。

  3.同样,在第11帧添加一个actions指令go to,目标是loading场景的第10帧,别忘了选中下面control栏中的go to and play选项。它的作用是:如果场景movie的第10帧还未下载,电影就不会跳到第12帧而按顺序执行第11帧,一进入第11帧,我们又让它回到第10帧继续检查场景movie的第10帧是否已下载,就这样不停循环,直到movie的第10帧下载完成为止。

  4.同样的方法再在第20、21帧,30、31帧处各加入一组检查点,最后的第40帧处就不用管了。这样就让整个电影文件分成四段显示下载进度,如果您觉得分四段不够精确,多加几组检查点就行了。


  三、设置电影循环场景


  一般网上的flash电影都是循环播放的,刚才制作的电影直接播放的话,会每次都loading一遍,显然不需要,解决的办法是在场景movie的最后加入一个actions命令指定循环的部分。


  图3

  切换到场景movie,在任一图层的最后一帧上右击,选择properties/actions,添加一个go to命令,目标位置为场景movie的第一帧,同样别忘了选中control栏中的go to and play选项。


  四、测试进度显示


  执行control/test movie命令就可以测试进度条显示情况了,不过这时您多半还没看清楚它就一闪而过了——本地读取的速度该有多快!不过我们也有办法让它慢下来,在测试窗口的control选单中选择一种较慢的速度如“14.4(1.2 kb/s)”, 同时选中view/bandwidth profiler打开带宽分析图,再按ctrl+enter组合键试试,行了吧!