company logo
advertisement for deep fried Twinkies


他山之石,可以攻玉


package
{
        import flash.display.*;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.events.ProgressEvent;
// import flash.display.DisplayObject;
    import flash.display.Loader;
    import flash.net.URLRequest;

       
         public class Loading extends Sprite
        {  
              var LoadTxt = new TextField();         //新建一个文本域   显示加载进度数据
                  var ProgressBG= new Sprite();          //把一个新的SPRITE的引用赋给ProgressBG 进度条背景色
                  var ProgressFore = new Sprite();       //把一个新的SPRITE的引用赋给ProgressFore      前景色
                  var fra_load = new MovieClip();        //fra_load.framesLoaded   见75行
                  var tot_frat = new MovieClip();        //tot_frat.totalFrames
                  var next_fra = new MovieClip();        //加载完成 下一帧          见76行
                  var LoadMC = new MovieClip();          //新建一个MC 装载 滚动条
                  var stageW=stage.stageWidth;           //获得场景 宽
          var stageH=stage.stageHeight;          //获得场景 高
                  var loader:Loader = new Loader();


                 public function Loading()
                {
           // stage.scaleMode=StageScaleMode.NO_SCALE;         //不缩放
          stage.showDefaultContextMenu=false;              //屏蔽右键菜单
          stage.frameRate=12;                              //播放速度12帧/s

          addChild(LoadMC)                                 //加载MC
                                   
          LoadTxt.autoSize=TextFieldAutoSize.CENTER        //文本自适应大小.居中
          LoadTxt.text="loading...";                       //文本值为loading 已经载入字节数0前显示

          LoadTxt.textColor=0x0000;                        //文本颜色 黑色
          LoadTxt.selectable=true;                         //文件属性为 可选
          LoadTxt.x=stageW/2-LoadTxt.width/2;              //文本 x轴居中                                   文本
          LoadTxt.y=stageH/2-LoadTxt.height/2;             //   y 居中
          LoadMC.addChild(LoadTxt).name="LoadTxt";         //载入文本 并 命名 LoadTxt                 
                     
          ProgressBG.graphics.lineStyle(3,0x000000,0.5);   //创建线条填充 粗细 3 黑色 透明度50% = 0.5 = .5
          ProgressBG.graphics.beginFill(0x000000,0.5);     //创建单色填充         --   -------------------

          ProgressBG.graphics.drawRect(0,0,200,3);         //绘制 矩形 坐标0.0 宽200 高3
          ProgressBG.graphics.endFill();                   //结束绘制                                        底色
          ProgressBG.x=stageW/2-ProgressBG.width/2;        //线条x轴 居中
          ProgressBG.y=LoadTxt.y + LoadTxt.height + 5;     //线条y轴 -------------------------------
          LoadMC.addChild (ProgressBG);                    //载入底色

                            
          ProgressFore.graphics.lineStyle(1,0xffffff,0.5); //创建线条填充 粗细 1 白色 透明度50% = 0.5 = .5
          ProgressFore.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,0xffffff],[50,50],[0,255]);  
                                                           // 线性渐变   左 - 右 均白色    alphas

          ProgressFore.graphics.drawRect(0,0,200,1);       //绘制 矩形 坐标0.0 宽200 高1                     前色
          ProgressFore.graphics.endFill();                 //结束绘制
          ProgressFore.x=stageW/2 - ProgressFore.width/2; //线条x轴 居中
          ProgressFore.y=LoadTxt.y + LoadTxt.height+6;     //线条y轴 在底色中间
          LoadMC.addChild (ProgressFore)                   //载入 前色
               

          LoadMC.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loading);   //添加进度监听
          LoadMC.loaderInfo.addEventListener(Event.COMPLETE,LoadSwf);            //添加进度完成监听
                }
               
                  function loading(eve)                               //显示进度载入百分比-----
        {
          var loadpre:int=eve.bytesLoaded/eve.bytesTotal*100; //变量loadpre=已下载字节/总字节数 再 * 100
          LoadTxt.text=loadpre + " %";                        //文本 输出 下载进度 %
          ProgressFore.scaleX=loadpre/100;                    //渐变色水平缩放等于 loadpre/100
        }
            
           function LoadSwf(eve)
          {
                        if (fra_load.framesLoaded == tot_frat.totalFrames) // 如果 已下载字节数 = 总字节数
             {
               removeChild(this.getChildAt(0));
               loader.load(new URLRequest("player.swf"));
               addChild(loader);
              }
          }
        }
       
}