快速业务通道

Flash loading 精确百分比下载

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-13

  完成效果如下:(源文件在此下载)

  大家知道一般的大作品都要加一个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.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号