今天复习了一下载入影片的功能。时间不够,先贴一下自己研究的跟在网上还来不及看的源代码。
这是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() 加载的影片剪辑