www.unanhui.com steven
昨天看报纸,报上有关于PRELOADER的制作的文章,也许大家都不买报纸,报纸上老土的制作方法起码我不感兴趣,呵呵~
所以我用送给大家段程序做礼物。有了它就不用又看报又看屏幕的敲了。把下面的代码放到第一桢就可以了.连图都不需要画。
在这些个代码里面用到了不少重要的函数。一切用代码完成,看上去复杂,用起来简单.怕有人不明白,特地写了注释在后面.
用到了建立空MC,空文本框,用到了文本格式,画线,填充等等。。。
//FLASH MX版本专用
lx=50;//设置LOAD的X位置
ly=300;//Y位置
bcolor=0x000000;//背景颜色
fcolor=0x666666;//前景颜色
tcolor=0xffffff;//文字颜色
//============================================================画矩形的原形函数
//x,y为原点,X1,Y1为增量,C为填充颜色,XX,YY为当前MC的位置。
Movieclip.prototype.rectangle=function (x,y,x1,y1,c,xx,yy) {
this.beginFill(c,100);//c为开始设置的变量
this.moveTo(x,y);
this.lineTo(x+x1,y);
this.lineTo(x+x1,y+y1);
this.lineTo(x,y+y1);
this.lineTo(x,y);
this.endFill();//
this._x=xx;
this._y=yy;
};
//=============================================================建立两个空MC,然后画矩形
_root.createEmptyMovieClip ("m_mc", 1);
_root.m_mc.rectangle(0,0,110,11,bcolor,lx-5,ly-1.5);//让两个MC的中心在一起。
_root.createEmptyMovieClip ("my_mc", 2);
_root.my_mc.rectangle(0,0,1,8,fcolor,lx,ly);
//======================================================================================
_root.createTextField("hasloaded_txt",3,lx+45,ly-0.5,20,10);
steven_ff=new TextFormat();
steven_ff.color=tcolor;
steven_ff.size=5;
_root.hasloaded_txt.setNewTextFormat(steven_ff)
//停在第一桢
_root.stop();
//使用ONENTERFRAME动作,不停顿检测preload的情况
fileSize=_root.getBytesTotal();//文件的总大小
_root.my_mc.onEnterFrame=function () {
bytesLoaded=_root.getBytesLoaded();//已经载入字节
c=Math.round(bytesLoaded/fileSize*100);//用这个数据来控制画好的MC的大小
trace("c="+c);//测试的时候查看变化
this._width=c;//设置my_mc的宽度
_root.hasloaded_txt.text=c+"%"; //如果已经全部下载完毕,那么播放;,卸载my_mc;
if(c==100){
_root.play();
unloadMovie(_root.my_mc);
unloadMovie(_root.m_mc);
unloadMovie(_root.hasloaded_txt);//文本也能下掉。。。
}
}
没用上FLASH MX的也别急,这里有一小段适合FLASH5呵呵~不过要用手画个宽1个象素的MC。把这段代码加在MC上就可以了。如果需要
显示白分比,就在场景中建立一个名为hasloaded的动态文本框就可以了。
//适合FLASH5 FLASH MX版本
onClipEvent(load){
_root.stop();
}
onClipEvent(enterFrame){
aload=_root.getBytesTotal();
bload=_root.getBytesLoaded();
c=bload/aload*100;
trace("c="+c);
this._width=c;
_root.hasloaded_txt.text=c+"%";
if(c==100){
_root.gotoAndPlay(20);
}
}
PS;关于多SWF加载的LOADER过几天写出来。
[upload=bmp]uploadFiles/2002-05/1516593120070.bmp[/upload]