Flash AS 实例进阶 FLASH载入等待 Loading效果

  源文件下载:第一部分;第二部分;第三部分;(依次命名为1.part1.rar;1.part2.rar;1.part3.rar,,即可正常解压。)

  点击查看动画效果<实例2-10 Loding

  基本思路

  ①令影片开始处于等待状态

  ② 检测影片的总长度和下载的长度,并时刻进行比较,当下载完全部或大部后开始播放。

  ③在影片下载过程中可以有多种辅助的显示形式,如:进度条,下载比例,下载字节数,或各种表示下载中的 MC 。

  新知识点

MovieClip.getBytesLoaded();//方法;

  返回已为 my_mc 指定的影片剪辑加载(流处理)的字节数。您可以将此值与 返回的值进行比较以确定已加载影片剪辑的百分比。

MovieClip.getBytesTotal()// 方法;

  以字节为单位返回 my_mc 指定的影片剪辑的大小。对于那些外部的影片剪辑(加载到某个目标或某个级别的根 SWF 文件或影片剪辑),返回值为 SWF 文件的大小。

  实例说明

  ① 一个有播放图标的 MC 写入 Loading 和 play 脚本。

  ②一个命名为“ xianshi ”的 MC 嵌套若干用于辅助显示的元件,此实例有进度条、动态文本、和一个有帧帧动画的 MC 。

  ③以上两个 MC 单独放在一个图层的第 1 帧,第 2 帧加空白关键帧,或将该图层的从第 2 帧起以后的帧完全删除。

  编写动作脚本

  ①在播放图标的 MC 上输入:

onClipEvent (load) { 
  _root.stop();
  this._visible = 0;
}
onClipEvent (enterFrame) {// 影片剪辑与帧频同步触发以下动作
  load = int(_root.getBytesLoaded()/_root.getBytesTotal()*100);// 计算下载字节数的百分比
  _root.xianshi.shuzi = " 已下载:  "+load+"%"; // 动态显示下载进度
  _root.xianshi.jindutiao._width = 2*load;// 进度条总长 200 像素,所以百分数乘2
  if (_root.getBytesLoaded() == _root.getBytesTotal()) { // 下载的字节数等于文件的字节数时执行后面命令了。
    this._visible = 1;
    _root.xianshi._visible = 0;
   }
}
on (release) {
   _root.play();
}

  要点分析

  ① Loading 的核心就是 _root.getBytesLoaded() 和 _root.getBytesTotal() 的比较, 这个实例是 _root.getBytesLoaded() == _root.getBytesTotal() ,即下载 100%SWF 文件, 其实根据网速,可以调整到下载大部分后就可以开始播放,余下部分是在播放过程中继续下载,如: _root.getBytesLoaded() >_root.getBytesTotal()*80/100 , 这样可以减少下载等待时间又可保证播放的连贯性。

  ②在本地机上测试 Loading 的方法是键入【 Ctrl+Enter 】或执行【控制】 - 【测试影片】,待影片开始播放后,再键入【 Ctrl+Enter 】或执行【视图】 - 【模拟下载】。

  小结

  通过网络 观看比较长的 swf 影片, Loading 是必不可少的,只要掌握了原理,可以设计各种有特色的下载画面,不光能消除等待的烦恼还可以给人以艺术性和欣赏性 体验。

  到这里,我和大家已经登到了“楼顶”,今后由随意带领我们随意在蓝天上飞喽。

  课后练习

  发挥各自的想象力,制作出漂亮的“楼顶”。

  查看全套"Flash AS 实例进阶教程"