关于Loading

今天复习了一下载入影片的功能。时间不够,先贴一下自己研究的跟在网上还来不及看的源代码。

 

这是AS2.0嵌入MC里面的代码,也是最简单最实用的loading:

onClipEvent (load){
 total = _root.getBytesTotal();
 
 }
 
 onClipEvent (enterFrame){
  loaded = _root.getBytesLoaded();
  percent = int ((loaded / total )* 100);
  this.load_txt = percent +"%";
  this.gotoAndStop(percent);
  if(loaded == total){
   _root.gotoAndPlay(2);
   }
  }

 

 

下面是加载外部影片的源码参考,转载于网络:

FLASH中加载外部SWF 的LOADING代码:
loadMovieNum("***.swf", 2);//将外部影片(***.swf)mc加载到级层2
loading.onEnterFrame = function() { //循环获得进度
a = _level2.getBytesLoaded();//获得已下载的字节数,注意我将外部影片加载到级层2
b = _level2.getBytesTotal(); //获得整个动画字节数
loading.bfb = int(a/b*100)+"%";//获得下载百分比
loading.jdt._xscale = (a/b*100);//获得进度条横向缩放值
if (a == b) { //如果下载完成,取消循环,开始播放下载的动画
delete loading.onEnterFrame;
tellTarget ("_level2") {
play();
}
}
};
stop();

==============================================================================

//设置开始
loadfile="图片地址";//要加载的文件
loadmc=_root.mymc;//要加载到的元件
setsize=300;//设置显示的宽度 (高度会等比显示)
//设置结束
//---------代码开始------------
var my_mcl = new MovieClipLoader(); //定义新的MovieClipLoader对象
myListener = new Object(); //定义一个新的对象,用来监听load进程
myListener.onLoadProgress = function (target_mc, loadedBytes, totalBytes) //加载过程中每当将加载的内容写入磁盘时调用
{
loaded=loadedBytes; //是已经下载的字节
loadtotal=totalBytes; //是正在加在的文件的总字节数
loadds = int(loaded /loadtotal * 100);//计算已经载入的百分比
loadtxt =int(loaded/1024) + " K / " + int(loadtotal/1024)+ " K " + loadds +"%";//显示下载的信息
_root.loadbar.gotoAndStop(loadds); //设置进度条
//if(loadds==100){_root.p._visible=false} // 如果不想使载入的按钮和进度条显示,使用该语句
}//end onLoadProgress
myListener.onLoadInit = function (target_mc) //当执行加载的剪辑的第一帧上的动作时调用
{
//获取加载的文件的大小、尺寸
loadmcoldw = target_mc._width;
loadmcoldh = target_mc._height;
fileoldsize = "文件宽度:" + loadmcoldw + " 高度: " + loadmcoldh;
loadv=loadmcoldh/loadmcoldw; //获得宽高比
//开始设置大小
speed=0.1;
loadneww=setsize;
loadnewh=setsize*loadv;//宽高等比
filesizetxt=fileoldsize+" 显示大小 "+ "宽:"+loadneww + " 高:"+loadnewh;
if (loadds==100){//如果下载完成
target_mc.removeListener(myListener);//删除监听对象
_root.mymc.onEnterFrame = function() {//循环触发事件
_root.mymc._width+=(loadneww-_root.mymc._width)*speed;//设置大小-缓冲变动
_root.mymc._height+=(loadnewh-_root.mymc._height)*speed;//设置大小-缓冲变动
};//end onEnterFrame
}//end if
} //end onLoadInit
myListener.onLoadError = function (target_mc, errorCode) //加载的文件未能加载时调用
{
if (errorCode=="URLNotFound" || errorCode=="LoadNeverCompleted"){
loadtxt="文件不存在!";//加载出错!
}//end if
} //end onLoadError
my_mcl.addListener(myListener);//注册一个新的监听对象
my_mcl.loadClip(loadfile,loadmc);//加载文件loadfile到loadmc
stop();
//MovieClipLoader.removeListener()
//删除已使用 MovieClipLoader.addListener() 注册的对象

//MovieClipLoader.unloadClip()
//删除已通过 MovieClipLoader.loadClip() 加载的影片剪辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值