手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网页制作>Flash>列表

Flashloading精确百分比下载

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  大家知道一般的大作品都要加一个loading动画,以前的loading的判断条件都是靠桢数来判断的,这样做是不准确的,但是也没有其他的办法 。flash5出现后解决了这个问题,其实就是靠他里面的.getBytesLoaded()和.getBytesTotal()两个函数。下面周详讲解此loading的制作。

  1.场景的背景选黑色,建立一个Symbol Name取load属性Movie Clip在这个Symbol里面建立一个从1到100桢,大小由24*3到24*450的矩形的渐变,颜色就用红白渐变吧!然后新建一层画一个矩形线框框住刚才的矩形。在第100桢配置Action:Stop();然后新建一层并且使其位于矩形那层的上方,在矩形的中央建立一个文本框,配置Variable为loaded,中间对齐,拖动他在矩形中央。如下图:

  


  2.回到主场景,将刚才的矩形Symbol拖到场景中,设定他的Instance为bar.在场景中新建两个文本框大小都为50*150吧!配置Variable分别为speed和time.

  3.新建一层设定第一桢的Action为:

  byteloaded = _root.getBytesLoaded();

  bytetotal = _root.getBytesTotal();

  loaded = int(byteloaded /bytetotal * 100); t = getTimer ();

  // 下载速度和百分比

  speed = "下载速度:" int(byteloaded/t * 100)/100 " K/s";

  /bar:loaded = loaded "%";

  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) "\"";

  time = "已用时间:" timeloaded "\r" "估计剩余时间:" timeremain;

  4.第9桢建立关键桢配置Action为:

  if (byteloaded == bytetotal) {

  gotoAndPlay ("ok");

  }

  else { gotoAndPlay ("loop");

  }

  5.第10桢建立关键桢配置Label为:ok.此处就是我们要load的东西,能够是个场景的开头。在此为了看到load的效果,我放了一个很大的图片

  6.配置第1桢Label为:loop.

  7.在放置矩形的一层的第10桢建立一桢。

  8.好了就这样就能够了。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!