|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Macromedia公司已经承诺在Flash8中将有很大的变化,而且它们中的许多都与视频功能有关。
媒介:略微年夜一些的Flash作品在播放之前城市有一个Loading预载画面,这思索到收集的速率,当地扫瞄不必要守候下载,但传到网上,由于每一个用户的网速分歧,以是很有需要在我们的作品中到场Loading画面,之前,已有良多教程是关于Loading制造办法的,明天我们给读者报告四个纯AS的Loading效果,不懂AS的菜鸟或“代码盲”乃至能够间接复制教程中的代码到本人的作品中,懂AS代码的伴侣,能够细心浏览这些代码,从中学到更多的AS常识,或由此引伸出更多的ASLoading效果……感激作者=棉花糖=、egg616、小郎供应源码和思绪--闪客帝国的叶子
一.=棉花糖=的Loading教程
对照大略
静态显现load百分比
将全体代码拷贝到第一帧,当load终了后,会主动入手下手播放
源代码:
- stop();
- _root.createTextField("myload_txt",1,0,0,0,0);
- with(_root.myload_txt){//设置文本
- background=true;//文本框是不是有背景
- backgroundColor=0x336699;//文本框的背景色彩
- textColor=0xFFFFFF;//文本字段中文本的色彩
- type="dynamic"//文本字段为静态文本
- selectable=false;//文本是不是可选
- autoSize="center";//把持文本字段的主动巨细调剂和对齐
- _x=Stage.width/2;//文本字段的横坐标
- _y=Stage.height/2;//文本字段的纵坐标
- }
- onEnterFrame=function(){
- varLoaded=_root.getBytesLoaded();
- varTotal=_root.getBytesTotal();
- _root.myload_txt.text=Math.floor((Loaded/Total)*100)+"%";
- if(Loaded==Total){
- onEnterFrame=null;
- removeMovieClip(_root.myload_txt);
- play();
- }
- };
复制代码
二.egg616的Loading艺术之一
1、制造道理:
天下上一切的loading也许都能够分为三个部分:
1)打造一个轮回,用于更新数据。一样平常来讲有两种办法,一种是做成二帧,在第二帧顶用gotoAndPlay(1)命令发生轮回。另外一种是只做一帧,使用onEnterFrame命令发生轮回。
2)使用getBytesTotal()与getBytesLoaded()命令猎取文件数据。
3)以图形或动画的体例将第二步猎取的数据体现出来(一样平常同时还以文本体例准确暗示)
下面的申明,对一个会做LOADING的人来讲是很分明的,但不会做的看了也许仍是不会(呵呵)以是上面我们一步一步来,做个复杂的例子(不做文本显现数据了):
2、复杂的例子(只要两步,信任你有这个耐烦):
Ⅰ 翻开你一个亲爱的动画,新建一个场景,并把它拖到最后面。
Ⅱ 在帧上到场以下的AS举措,即半途而废!
源代码:
- stop();
- functiondr(nam,de,d,al){
- na=createEmptyMovieClip(nam,de);
- na.lineStyle(d,0x9900cc,al);
- na._x=160;
- na._y=280;
- na.lineTo(240,0);
- }
- //一个画线条的函数,四个参数对应甚么,本人看哈
- onEnterFrame=function(){
- vara=getBytesTotal();
- varb=getBytesLoaded();
- //获得下载的数据
- if(b<a){
- dr("b1",0,30,30);
- dr("b2",1,20,30);
- dr("b3",2,20,100);
- b3._xscale=b/a*100;
- //画三条横线,显现下载进度;
- }else{
- deleteonEnterFrame;
- b1.removeMovieClip();
- b2.removeMovieClip();
- b3.removeMovieClip();
- play();
- //下载终了,删除图形和函数;
- }
- };
复制代码
能够按两次Ctrl+Enter举行下载测试,若对AS有害怕症者,闭着眼睛复制―粘贴便可
上面是这个例子的最终效果
三.egg616的Loading艺术之二
1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
2、在最后面的场景的第一帧上到场上面的AS代码。
源代码:- //Copyright:吴杰兴广东廉江
- //本作品可随便复制或修正,但请说明原作者
- stop();
- sw=550;
- sh=400;
- //
- Stage.showMenu=false;
- //埋没厌恶的右键菜单
- cs=60;
- //网格的麋集水平
- r=2550;
- d=r/Math.SQRT2;
- //网格的曲折度
- p=Math.PI;
- //界说常数PI
- createEmptyMovieClip("ln",1);
- ln.lineStyle(0,0xffffff);
- for(vari=1;i<=cs;i++){
- ln.moveTo(sw/2+r*Math.cos(i/cs*p),-d+300+r*Math.sin(i/cs*p));
- ln.lineTo(sw/2+r*Math.cos(i/cs*p+p/2),
- -d+300+r*Math.sin(i/cs*p+p/2));
- }
- //上面画个色彩突变的基础
- createEmptyMovieClip("bg",0);
- with(bg){
- colors=[0x6666ff,0xffffff,0x660099];
- alphas=[30,30,80];
- ratios=[0,100,200];
- lineStyle(5,0x00ff00);
- matrix={matrixType:"box",x:200,y:115,w:50,h:450,r:p/2};
- beginGradientFill("linear",colors,alphas,ratios,matrix);
- moveTo(-200-sw,-100);
- lineTo(200+sw,-100);
- lineTo(200+sw,100+sh);
- lineTo(-200,100+sh);
- lineTo(-200,-100);
- endFill();
- }
- //
- r1=50;
- r2=170;
- nu=32;
- //分离为中央圆的3个参数;
- cr=600;
- //cr是填色半径
- createTextField("te",5,75,100,160,100);
- te.textColor=0x9900ff;
- //创立文本显现下载的数据
- functionfo1(nam,de,ro){
- na=createEmptyMovieClip(nam,de);
- with(na){
- _y=40;
- lineStyle(0,0x000000,0);
- colors=[0x6666ff,0xffffff,0x660099];
- alphas=[130,130,20];
- ratios=[0,120,200];
- matrix={matrixType:"box",x:-cr/2,y:-cr/2,w:cr,h:cr,r:p/2};
- beginGradientFill("radial",colors,alphas,ratios,matrix);
- //这里用AS来突变添补
- moveTo(r1,0);
- varbl=Math.cos(p/nu);
- for(vari=1;i<=ro;i++){
- curveTo(r1*Math.cos(i*p/(nu/2)-p/nu)/bl,
- r1*Math.sin(i*p/(nu/2)-p/nu)
- /bl,r1*Math.cos(i*p/(nu/2)),r1*Math.sin(i*p/(nu/2)));
- }
- lineT</p>[align=center][b][1]200609/3221_2.html>[2]200609/3221_2.html>下一页[/b][/align]
- o(r2*Math.cos(ro*p/(nu/2)),r2*Math.sin(ro*p/(nu/2)));
- for(vari=ro;i>=1;i--){
- curveTo(r2*Math.cos(i*p/(nu/2)-p/nu)/bl,
- r2*Math.sin(i*p/(nu/2)-p/nu)
- /bl,r2*Math.cos((i-1)*p/(nu/2)),r2*Math.sin((i-1)*p/(nu/2)));
- }
- lineTo(r1,0);
- endFill();
- }
- }
- //此函数用来画两头的圆环,个中圆环是用curverTo的办法作出,
- //这里不作先容,我将鄙人个教程中胪陈
- onEnterFrame=function(){
- ab=_root.getBytesLoaded();
- bb=_root.getBytesTotal();
- //猎取数据
- sb=int(ab/bb*nu);
- fo1("di",4,sb);
- di._x=275;
- di._y=200;
- di._yscale=25;
- di._rotation=-30;
- //挪用函数作下面的圆环
- fo1("yz",3,sb);
- yz._xscale=100*Math.pow(3,0.5)/2;
- yz._yscale=25;
- yz._alpha=30;
- yz._x=275;
- yz._y=360;
- //鄙人面再作一个通明的圆环,作为上一个的影子
- if(ab>>>"
- di.onPress=function(){
- deleteonEnterFrame;
- te.removeTextField();
- di.removeMovieClip();
- yz.removeMovieClip();
- ln.removeMovieClip();
- bg.removeMovieClip();
- play();
- };
- }
- };
复制代码
由于是纯AS的作品,就不再供应FLA文件了,上面是最终效果(JPG格局的,比起SWF的差多了。)
四.小郎的ASLoading
1、翻开你要加Loading的动画,新建一个场景,并把它拖到最后面。
2、新建一个空MC,并将其拖进新建的场景的第1帧上,并将实在例名定名为:ss
3、在MC上到场以下代码(换句话说:单击MC,翻开AS面板,输出以下代码:)
- onClipEvent(load){
- this._x=180;
- this._y=300;
- _root.ss.createTextField("tt",1,70,50,100,20);
- _root.ss.tt.textColor=0xff0000;
- _root.ss.createEmptyMovieClip("louding",2);
- with(_root.ss.louding){
- lineStyle(0,0x0000ff,0);
- moveTo(0,0);
- //出发点
- beginFill(0xff0000,100);
- lineTo(0,10);
- lineTo(10,10);
- lineTo(10,0);
- endFill();
- }
- _root.ss.createEmptyMovieClip("loudingk",3);
- with(_root.ss.loudingk){
- lineStyle(0,0x000000,100);
- moveTo(0,0);
- //出发点
- lineTo(0,10);
- lineTo(200,10);
- lineTo(200,0);
- lineTo(0,0);
- }
- }
- onClipEvent(enterFrame){
- load=int(_root.getBytesLoaded()/_root.getBytesTotal()*100);
- _root.ss.tt.text="loading"+load+"%";
- _root.ss.louding._width=2*load;
- if(_root.getBytesLoaded()==_root.getBytesTotal()){
- _root.play();
- }
- }
复制代码
效果如图:
小提醒:本机测试Loading效果的复杂办法
Ctrl+Enter以后常常看不到Loading效果就入手下手播放主体动画了,要想分明地预览到Loading的效果,一个很复杂的办法是:Ctrl+Enter以后在测试动画播放形态下再按一次Ctrl+Enter就能够分明地看到Loading效果了,别的能够改动摹拟Modem的速率,在测试动画的窗口中,从Debug菜单中可选择14.4、28.8、56K等几个速率,或自界说</p>200609/3221.html>上一页200609/3221.html>[1][2]
flash影片的后缀名为.swf,该类型文件必须有flash播放器才能打开(包括各大浏览器,视频播放器),且播放器的版本须不低于FLASH程序自带播放器的版本。 |
|