AS3.0制作的一款简单PDF在线文档阅读器

首先推荐一技术交流群(178547149),喜欢java的朋友可以进下。

效果演示:

下载地址:/Files/zhoujunfeng2011/SWF/Reader2.swf

 

此文档阅读器使用简单原理制作而成,制作此在线文档阅读器需有后台支持,后台使用SWFTOOLS中的PDFTOSWF工具进行转换,再使用AS3加载生成的SWF文件,下面看具体AS3源码吧,后台源码就不贴了,各位朋友可去网上搜...

源码:

ui包:child.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5 
 6      public class child extends MovieClip
 7      {
 8          public  function  child()
 9          {
10               //  constructor code
11          }
12      }
13  }

 

cnway_logo.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class cnway_logo extends MovieClip
 6      {
 7          public  function  cnway_logo()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

down_listbtn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class down_listbtn extends MovieClip
 6      {
 7          public  function  down_listbtn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

downpage_btn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class downpage_btn extends MovieClip
 6      {
 7          public  function  downpage_btn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

fangda_btn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class fangda_btn extends MovieClip
 6      {
 7          public  function  fangda_btn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

Mouse_hand.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class Mouse_hand extends MovieClip
 6      {
 7          public  function  Mouse_hand()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

screen.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class screen extends MovieClip
 6      {
 7          public  function  screen()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

Stages.as

 

 1  package ui
 2  {
 3      import flash.display.Stage;
 4 
 5      public class Stages
 6      {
 7          static private  var  mystages:Stage;
 8          public  function  Stages(): void
 9          {
10              
11          }
12          static public  function  get stagess():Stage
13          {
14               return  mystages;
15          }
16          static public  function  set stagess(sg:Stage): void
17          {
18              mystages  =  sg;
19          }
20      }
21  }

 

suoxiao_btn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class suoxiao_btn extends MovieClip
 6      {
 7          public  function  suoxiao_btn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

up_listbtn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4 
 5      public class up_listbtn extends MovieClip
 6      {
 7          public  function  up_listbtn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

uppage_btn.as

 

 1  package ui
 2  {
 3      import flash.display.MovieClip;
 4      
 5      public class uppage_btn extends MovieClip
 6      {
 7          public  function  uppage_btn()
 8          {
 9               //  constructor code
10          }
11      }
12  }

 

loading.as

 

 1  package ui
 2  {
 3      import flash.display.Shape;
 4      import flash.display.Sprite;
 5      import flash.display.StageAlign;
 6      import flash.display.StageScaleMode;
 7      import flash.events.Event;
 8      import flash.geom.Matrix;
 9      import flash.utils.Timer;
10      import flash.events.TimerEvent;
11      import flash.display.Loader;
12      import flash.net.URLRequest;
13 
14      public class loading extends Sprite
15      {
16          private  var  nums: int   =   12 ;
17          private  var  m2:Matrix  =   new  Matrix();
18          private  var  m:Matrix  =    new  Matrix();
19          private  var  Abar:Array  =   new  Array();
20          private  var  segAngle:Number;
21          private  var  seg:Number;
22          private  var  j:Number  =   0 ;
23          private  var  timer:Timer  =   new  Timer( 50 );
24          private  var  logo:cnway_logo  =   new  cnway_logo();
25          public  function  loading()
26          {
27              init();
28          }
29          private  function  init(): void
30          {
31               this .addChild(logo);
32              logo.x  =   -   30 ;
33              logo.y  =   55 ;
34              initBar();
35          }
36          private  function  initBar(): void
37          {
38              segAngle  =   2   *  Math.PI  /   this .nums;
39              seg  =   1   /   this .nums;
40               for  ( var  i: int   =   0 ; i  <   this .nums; i ++ )
41              {
42                   var  bar:Shape = new  Shape();
43                  Abar[i]  =  bar;
44                  bar.graphics.beginFill( 0x000000 );
45                  bar.graphics.drawRoundRect( 0 , 0 , 10 , 3 , 4 , 4 );
46                  bar.graphics.endFill();
47                   this .addChild(bar);
48                  bar.x  =  bar.y  =   100 ;
49                  m.identity();
50                  m.translate( 7 , - 1 );
51                  m.rotate(segAngle * i);
52                  m.translate( - 7 , 1 );
53                  m2.identity();
54                  m2.translate( 100 , 100 );
55                  m.concat(m2);
56                  bar.transform.matrix  =  m;
57              }
58              timer.addEventListener(TimerEvent.TIMER,alphaHalder);
59              timer.start();
60          }
61 
62          private  function  alphaHalder(evt:TimerEvent): void
63          {
64               for  ( var  i: int   =   0 ; i  <   this .nums; i ++ )
65              {
66                   var  bar:Shape  =  Abar[i] as Shape;
67                  bar.alpha  =  j;
68                   if  (j  ==   1.0833333333333333 )
69                  {
70                      j  =   0 ;
71                  }
72                  j  +=   seg;
73              }
74          }
75      }
76  }

 

control包:

TipTextFiled.as

 

 1  package control
 2  {
 3      import flash.display.MovieClip;
 4      import flash.text.TextField;
 5      import flash.text.TextFormat;
 6      import ui.Stages;
 7      import flash.display.Stage;
 8      import flash.display.Sprite;
 9 
10      public class TipTextFiled extends MovieClip
11      {
12          private static  var  mytext:TextField  =   new  TextField();
13          private static  var  myformat:TextFormat  =   new  TextFormat();
14          private static  var  myshape:Sprite  =   new  Sprite();
15          private static  var  mystage:Stage  =  Stages.stagess;
16          public  function  TipTextFiled(): void
17          {
18          }
19          public static  function  addTipTextFiled(myname:String): void
20          {
21              mytext  =   new  TextField();
22              myshape  =   new  Sprite();
23              myformat.font  =   " Times New Roman " ;
24              myformat.color  =   0x000000 ;
25              myformat.size  =   12 ;
26              mytext.text  =  myname;
27              mytext.width  =  mytext.textWidth  +   8 ;
28              mytext.height  =  mytext.textHeight  +   6 ;
29              mytext.setTextFormat(myformat);
30              myshape.graphics.beginFill( 0xfbfbfb );
31              myshape.graphics.lineStyle( 1 , 0x000000 , 0.2 );
32              myshape.graphics.drawRect( 0 , 0 ,mytext.textWidth  +   4 ,mytext.textHeight);
33              myshape.graphics.endFill();
34              myshape.addChild(mytext);
35              mytext.x  =   1 ;
36              mytext.y  =   - 2 ;
37              mystage.addChild(myshape);
38               if  (mystage.mouseX  >=  mystage.width  -  myshape.width)
39              {
40                  myshape.x  =  mystage.mouseX  -  myshape.width  /   2 ;
41              }
42               else
43              {
44                  myshape.x  =  mystage.mouseX;
45              }
46              myshape.y  =  mystage.mouseY  +  myshape.height;
47          }
48          public static  function  removeTipTextFiled(): void
49          {
50               try
51              {
52                  myshape.removeChild(mytext);
53                  mytext  =   null ;
54                  mystage.removeChild(myshape);
55                  myshape  =   null ;
56              }
57               catch  (e)
58              {
59 
60              }
61          }
62      }
63  }

 

Scrollbar.as

 

package control
{
 import flash.display.Sprite;
 import flash.events.MouseEvent;
 import flash.events.Event;
 import ui.Stages;
 import flash.geom.Rectangle;
 import flash.display.Stage;
 import flash.geom.Matrix;
 import flash.display.SpreadMethod;
 import flash.display.GradientType;
 import flash.display.MovieClip;

 public class Scrollbar extends Sprite
 {
  public 
var  obj:MovieClip; // 需进行滚动的对象
  public  var  scrollmask:Sprite; // 遮罩对象
  public  var  scrollheight:Number; // 滚动条高度
  public  var  scrolltextnum: int ; // 文本显示行数
  public  var  textspeed: int ; // 文本滚动速度(行/像素)
  public  var  Scroll:Sprite; // 自定义滚动条对象
  public  var  bar:Sprite; // 滑块
  public  var  up:Sprite; // 向上按钮
  public  var  down:Sprite; // 向下按钮
  public  var  bg:Sprite; // 滑槽
  public  var  num: int ; // 计算滑块高度所用
  public  var  scrollwidth:Number; // 左右滚动条宽度
  public  var  left_right_scroll:Sprite; // 左右自定义滚动条对象
  public  var  left_right_bar:Sprite; // 左右滚动条滑块
  public  var  left:Sprite; // 向左按钮
  public  var  right:Sprite; // 向右按钮
  public  var  left_right_bg:Sprite; // 左右滚动条滑槽
  public  var  num2: int ; // 计算左右滑块宽度

  private 
var  displayobject:Stage; // 接受stage
  private  var  bars:Number; // 滑块可滑动距离
  private  var  bars2:Number;
  private 
var  rect:Rectangle; // 滑块可拖动范围
  private  var  rect2:Rectangle;
  private 
var  i: int   =   0 ;
  private 
var  i2: int   =   0 ;
  private 
var  n:Number;
  private 
var  n2:Number;
  
// //构造器函数/////
  public  function  Scrollbar(): void
  {
  }
  
// ///初始化函数/////
  public  function  init(): void
  {
   displayobject 
=  Stages.stagess;
   
if  (checkhide())
   {
    addEventListeners();
   }
   
else
   {
    bar.visible 
=   false ;
   }
   setxy();
  }
  public 
function  init2(): void
  {
   displayobject 
=  Stages.stagess;
   
if  (check_leftandright_hide())
   {
    leftandright_addEventListeners();
   }
   
else
   {
    left_right_bar.visible 
=   false ;
   }
   setxy2();
  }
  
// /判断是否显示滚动条等///
  private  function  checkhide():Boolean
  {
   
if  (Scroll  !=   null )
   {
    
if  (obj.height  <=  scrollmask.height)
    {
     
return   false ;
    }
    
return   true ;
   }
   
return   false ;
  }
  
// /判断是否显示左右滚动条等///
  private  function  check_leftandright_hide():Boolean
  {
   
if  (left_right_scroll  !=   null )
   {
    
if  (obj.width  <=  scrollmask.width)
    {
     
return   false ;
    }
    
return   true ;
   }
   
return   false ;
  }
  
// /设置滚动条高度,对象遮罩等////
  private  function  setxy(): void
  {
   bar.y 
=  bg.y;
   
if  (bar.height  >=   10 )
   {
    num 
*=    50 ;
    n 
=  (obj.height  -  scrollmask.height) / (num+100);
    bar.height  =  scrollmask.height  -  (obj.height  -  scrollmask.height) / n;
   }
   bars 
=  bg.height  -  bar.height;
   obj.mask 
=  scrollmask;
   rect 
=   new  Rectangle(bar.x,bg.y, 0 ,bg.height  -  bar.height  -   30 );
  }
  private 
function  setxy2(): void
  {
   left_right_bar.x 
=  left_right_bg.x;
   
if  (left_right_bar.width  >=   10 )
   {
    num2 
*=    50 ;
    n2 
=  (obj.width  -  scrollmask.width) / (num2+100);
    left_right_bar.width  =  scrollmask.width  -  (obj.width  -  scrollmask.width) / n2;
   }
   bars2 
=  left_right_bg.width  -  left_right_bar.width;
   obj.mask 
=  scrollmask;
   rect2 
=   new  Rectangle(left_right_bg.x,left_right_bar.y,left_right_bg.width  -  left_right_bar.width  -   30 , 0 );
  }
  
// /当被滚动对象更新时,而需要改变滚动条状态,调用此方法///
  public  function  update(num: int ): void
  {
   
if  (checkhide())
   {
    num 
*=    20 ;
    i
++ ;
    bar.visible 
=   true ;
    
if  (bar.height  >=   10 )
    {
     n 
=  (obj.height  -  scrollmask.height) / (num+10);
     bar.height  =  scrollmask.height  -  (obj.height  -  scrollmask.height) / n;
    }
    bar.y 
=  bg.y  +  bg.height  -  bar.height;
    bar.y 
+=   bars  *  textspeed  / (obj.height - scrollmask.height);
    updatebar();
    bars 
=  bg.height  -  bar.height;
    rect 
=   new  Rectangle(bar.x,bg.y  +   0.5 , 0 ,bg.height  -  bar.height);
    
if  (i  ==   1 )
    {
     bar.visible 
=   true ;
     addEventListeners();
    }
   }
   
else
   {
    bar.visible 
=   false ;
   }
  }
  
// /当被滚动对象更新时,而需要改变左右滚动条状态,调用此方法///
  public  function  update2(num: int ): void
  {
   
if  (check_leftandright_hide())
   {
    num 
*=    10 ;
    i2
++ ;
    left_right_bar.visible 
=   true ;
    
if  (left_right_bar.width  >=   10 )
    {
     n2 
=  (obj.width  -  scrollmask.width) / (num+10);
     left_right_bar.width  =  scrollmask.width  -  (obj.width  -  scrollmask.width) / n2;
    }
    left_right_bar.x 
=  left_right_bg.x  +  left_right_bg.width  -  left_right_bar.width;
    left_right_bar.x 
+=   bars2  *  textspeed  / (obj.width - scrollmask.width);
    updatebar2();
    bars2 
=  left_right_bg.width  -  left_right_bar.width;
    rect2 
=   new  Rectangle(left_right_bg.x,left_right_bar.y,left_right_bg.width  -  left_right_bar.width, 0 );
    
if  (i2  ==   1 )
    {
     left_right_bar.visible 
=   true ;
     leftandright_addEventListeners();
    }
   }
   
else
   {
    left_right_bar.visible 
=   false ;
   }
  }
  
// /为滚动条添加监听事件////
  private  function  addEventListeners(): void
  {
   bar.addEventListener(MouseEvent.MOUSE_DOWN,barclick);
   bar.addEventListener(MouseEvent.MOUSE_UP,barup);
   displayobject.addEventListener(MouseEvent.MOUSE_UP,barup);
   up.addEventListener(MouseEvent.MOUSE_DOWN,upclick);
   down.addEventListener(MouseEvent.MOUSE_DOWN,downclick);
   Scroll.addEventListener(MouseEvent.MOUSE_WHEEL,mousewheel);
   displayobject.addEventListener(MouseEvent.MOUSE_WHEEL,mousewheel);
  }
  
// /为左右滚动条添加监听事件///;
  private  function  leftandright_addEventListeners(): void
  {
   left_right_bar.addEventListener(MouseEvent.MOUSE_DOWN,left_right_barclick);
   left_right_bar.addEventListener(MouseEvent.MOUSE_UP,left_right_barup);
   displayobject.addEventListener(MouseEvent.MOUSE_UP,left_right_barup);
   left.addEventListener(MouseEvent.MOUSE_DOWN,leftclick);
   right.addEventListener(MouseEvent.MOUSE_DOWN,rightclick);
  }
  
// /鼠标点击滑块方法///;
  private  function  barclick(evt:MouseEvent): void
  {
   bar.startDrag(
false ,rect);
   bar.addEventListener(Event.ENTER_FRAME,bar_enter_frame);
  }
  private 
function  left_right_barclick(evt:MouseEvent): void
  {
   left_right_bar.startDrag(
false ,rect2);
   left_right_bar.addEventListener(Event.ENTER_FRAME,bar_enter_frame2);
  }
  
// /鼠标点击滑块释放方法///;
  private  function  barup(evt:MouseEvent): void
  {
   bar.stopDrag();
   delevent();
  }
  private 
function  left_right_barup(evt:MouseEvent): void
  {
   left_right_bar.stopDrag();
   delevent2();
  }
  
// /鼠标点击向上按钮方法///
  private  function  upclick(evt:MouseEvent): void
  {
   
if  (checkbar())
   {
    bar.y 
-=  bars  *  textspeed  / (obj.height-scrollmask.height); // 滑块移动的距离=滚动对象滚动的像素*滑块可移动的总距离 / (被滚动对象的高度 - 遮罩的高度(即显示范围的高度))
    objrun(
0 - textspeed);
    
// 调用方法移动对象;
    updatebar(); // 校正滑块位置
   }
  }
  private 
function  leftclick(evt:MouseEvent): void
  {
   
if  (checkbar2())
   {
    left_right_bar.x 
-=  bars2  *  textspeed  / (obj.width - scrollmask.width);
    objrun2( 0 - textspeed);
    updatebar2();
   }
  }
  
// /鼠标点击向下按钮方法///
  private  function  downclick(evt:MouseEvent): void
  {
   
if  (checkbar())
   {
    bar.y 
+=   bars  *  textspeed  / (obj.height - scrollmask.height);
    objrun(textspeed);
    updatebar();
   }
  }
  private 
function  rightclick(evt:MouseEvent): void
  {
   
if  (checkbar2())
   {
    left_right_bar.x 
+=  bars2  *  textspeed  / (obj.width - scrollmask.width);
    objrun2(textspeed);
    updatebar2();
   }
  }
  
// /鼠标滑轮事件///
  private  function  mousewheel(evt:MouseEvent): void
  {
   
if  (evt.delta  >   0 )
   {
    
if  (checkbar())
    {
     bar.y 
-=   bars  *  textspeed  / (obj.height - scrollmask.height);
     objrun( - textspeed);
     updatebar();
    }
   }
   
else
   {
    
if  (checkbar())
    {
     bar.y 
+=   bars  *  textspeed  / (obj.height - scrollmask.height);
     objrun(textspeed);
     updatebar();
    }
   }
  }
  private 
function  bar_enter_frame(evt:Event): void
  {
   obj.y 
=  scrollmask.y  -  (bar.y  -  bg.y) * (obj.height  -  scrollmask.height) / bars;
    if  (obj.y  >  scrollmask.y)
   {
    obj.y 
=  scrollmask.y;
   }
   
else   if  (obj.y  <  (scrollmask.y  -  obj.height  +  scrollmask.height))
   {
    obj.y 
=  scrollmask.y  -  obj.height  +  scrollmask.height;
   }
  }
  private 
function  bar_enter_frame2(evt:Event): void
  {
   obj.x 
=  scrollmask.x  -  (left_right_bar.x  -  left_right_bg.x) * (obj.width  -  scrollmask.width) / bars2;
    if  (obj.x  >  scrollmask.x)
   {
    obj.x 
=  scrollmask.x;
   }
   
else   if  (obj.x  <  (scrollmask.x  -  obj.width  +  scrollmask.width))
   {
    obj.x 
=  scrollmask.x  -  obj.width  +  scrollmask.width;
   }
  }
  private 
function  objrun(i:Number): void
  {
   obj.y 
-=   i;
   
if  (obj.y  >  scrollmask.y)
   {
    obj.y 
=  scrollmask.y;
   }
   
else   if  (obj.y  <  (scrollmask.y  -  obj.height  +  scrollmask.height))
   {
    obj.y 
=  scrollmask.y  -  obj.height  +  scrollmask.height;
   }
  }
  private 
function  objrun2(i:Number): void
  {
   obj.x 
-=   i;
   
if  (obj.x  >  scrollmask.x)
   {
    obj.x 
=  scrollmask.x;
   }
   
else   if  (obj.x  <  (scrollmask.x  -  obj.width  +  scrollmask.width))
   {
    obj.x 
=  scrollmask.x  -  obj.width  +  scrollmask.width;
   }
  }
  private 
function  checkbar():Boolean
  {
   
if  (bar.y  >=  bg.y  &&  bar.y  <=  (bars  +  bg.y))
   {
    
return   true ;
   }
   
return   false ;
  }
  private 
function  checkbar2():Boolean
  {
   
if  (left_right_bar.x  >=  left_right_bg.x  &&  left_right_bar.x  <=  (bars2  +  left_right_bg.x))
   {
    
return   true ;
   }
   
return   false ;
  }
  
// /删除卸载事件侦听///
  private  function  updatebar(): void
  {
   
if  (bar.y  <  bg.y)
   {
    bar.y 
=  bg.y;
   }
   
else   if  (bar.y  > (bg.y  +  bg.height  -  bar.height))
   {
    bar.y 
=  bg.y  +  bg.height  -  bar.height;
   }
  }
  private 
function  updatebar2(): void
  {
   
if  (left_right_bar.x  <  left_right_bg.x)
   {
    left_right_bar.x 
=  left_right_bg.x;
   }
   
else   if  (left_right_bar.x  > (left_right_bg.x  +  left_right_bg.width  -  left_right_bar.width))
   {
    left_right_bar.x 
=  left_right_bg.x  +  left_right_bg.width  -  left_right_bar.width;
   }
  }
  private 
function  delevent2(): void
  {
   left_right_bar.removeEventListener(Event.ENTER_FRAME,bar_enter_frame2);
  }
  private 
function  delevent(): void
  {
   bar.removeEventListener(Event.ENTER_FRAME,bar_enter_frame);
  }
 }
}

 

文档类:Main.as

 

package 
{
 import flash.display.MovieClip;
 import flash.display.Loader;
 import flash.events.Event;
 import flash.net.URLRequest;
 import flash.events.MouseEvent;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 import com.
* ;
 import ui.
* ;
 import control.
* ;
 import flash.display.Sprite;
 import flash.text.TextField;
 import flash.text.TextFormat;
 import flash.events.IOErrorEvent;
 import flash.events.ProgressEvent;
 import flash.display.Shape;
 import flash.net.URLLoader;

 public class Main extends MovieClip
 {
  private 
var  mymovie:MovieClip;
  private 
var  num: int ;
  private 
var  url:String;
  private 
var  myloading:loading;
  private 
var  up_btn:uppage_btn  =   new  uppage_btn();
  private 
var  down_btn:downpage_btn  =   new  downpage_btn();
  private 
var  fd_btn:fangda_btn  =   new  fangda_btn();
  private 
var  sx_btn:suoxiao_btn  =   new  suoxiao_btn();
  private 
var  up_scrollbtn:up_listbtn  =   new  up_listbtn();
  private 
var  down_scrollbtn:down_listbtn  =   new  down_listbtn();
  private 
var  left_scrollbtn:up_listbtn  =   new  up_listbtn();
  private 
var  right_scrollbtn:down_listbtn  =   new  down_listbtn();
  private 
var  left_right_bg:Sprite;
  private 
var  left_right_bar:Sprite;
  private 
var  left_right_scrollcont:Sprite  =   new  Sprite();
  private 
var  mymouse:Mouse_hand  =   new  Mouse_hand();
  private 
var  mc_width: int   =   595 ;
  private 
var  mc_height: int   =   841 ;
  private 
var  myscrollbar:Scrollbar;
  private 
var  scrollmask:Sprite;
  private 
var  scrollcont:Sprite  =   new  Sprite();
  private 
var  bg:Sprite;
  private 
var  bar:Sprite;
  private 
var  nums: int   =   0 ;
  private 
var  PageTotal:TextField  =   new  TextField();
  private 
var  Paged:TextField  =   new  TextField();
  private 
var  textformat:TextFormat  =   new  TextFormat();
  private 
var  progress_txt:TextField  =   new  TextField();
  private 
var  count: int   =   0 ;
  private const my_y:Array 
=  [ 30 , - 20 , - 70 , - 120 , - 170 , - 220 , - 270 , - 320 , - 370 , - 420 , - 470 ];
  private const my_x:Array 
=  [ 0 , - 50 , - 100 , - 150 , - 200 , - 250 , - 300 , - 350 , - 400 , - 450 , - 500 ];
  private 
var  mu_child:child  =   new  child();
  private 
var  screen_child:screen  =   new  screen();
  private 
var  myx:Number;
  public 
function  Main(): void
  {
   
// stage.align = StageAlign.LEFT;
   stage.scaleMode  =  StageScaleMode.SHOW_ALL;
   Stages.stagess 
=   this .stage;
   init();
  }
  private 
function  init(): void
  {
   
var  myurlloader:URLLoader  =   new  URLLoader();
   myurlloader.addEventListener(Event.COMPLETE,xmlcom);
   myurlloader.load(
new  URLRequest( " http://files.cnblogs.com/zhoujunfeng2011/SWF/data.xml " ));
  }
  private 
function  xmlcom(evt:Event): void
  {
   
var  myxml:XML  =   new  XML(evt.target.data);
   
var  txt1:TextField  =   new  TextField();
   
var  txt2:TextField  =   new  TextField();
   
var  txt3:TextField  =   new  TextField();
   
var  format:TextFormat  =   new  TextFormat();
   format.font 
=   " Times New Roman " ;
   format.color 
=   0x000000 ;
   format.size 
=   24 ;
   txt1.text 
=   " " ;
   txt1.selectable 
=   false ;
   txt2.text 
=   " 页 共 " ;
   txt2.selectable 
=   false ;
   txt3.text 
=   " " ;
   txt3.selectable 
=   false ;
   textformat.font 
=   " Times New Roman " ;
   textformat.color 
=   0x000000 ;
   textformat.size 
=   14 ;
   txt1.setTextFormat(textformat);
   txt2.setTextFormat(textformat);
   txt3.setTextFormat(textformat);
   myscrollbar 
=   new  Scrollbar();
   addChild(up_btn);
   up_btn.x 
=   470 ;
   up_btn.y 
=   15 ;
   up_btn.buttonMode 
=   true ;
   addChild(down_btn);
   down_btn.x 
=  up_btn.x  +   40 ;
   down_btn.y 
=  up_btn.y;
   down_btn.buttonMode 
=   true ;
   addChild(fd_btn);
   fd_btn.x 
=  up_btn.x  -   80 ;
   fd_btn.y 
=  up_btn.y;
   fd_btn.buttonMode 
=   true ;
   addChild(sx_btn);
   sx_btn.x 
=  fd_btn.x  +  sx_btn.width  +   10 ;
   sx_btn.y 
=  fd_btn.y;
   sx_btn.buttonMode 
=   true ;
   addChild(txt1);
   txt1.x 
=   224 ;
   txt1.y 
=   5 ;
   txt1.width 
=  txt1.textWidth  +   6 ;
   addChild(txt2);
   txt2.x 
=  txt1.x  +   50 ;
   txt2.y 
=  txt1.y;
   txt2.width 
=  txt2.textWidth  +   6 ;
   addChild(txt3);
   txt3.x 
=  txt2.x  +   70 ;
   txt3.y 
=  txt2.y;
   txt3.width 
=  txt3.textWidth  +   6 ;
   PageTotal.text 
=   " 0 " ;
   Paged.text 
=   " 0 " ;
   PageTotal.setTextFormat(textformat);
   Paged.setTextFormat(textformat);
   PageTotal.selectable 
=   false ;
   Paged.selectable 
=   false ;
   addChild(Paged);
   Paged.x 
=   250 ;
   Paged.y 
=   5 ;
   Paged.width 
=  Paged.textWidth  +   20 ;
   addChild(PageTotal);
   PageTotal.x 
=   318 ;
   PageTotal.y 
=   5 ;
   PageTotal.width 
=  PageTotal.textWidth  +   20 ;
   addChild(screen_child);
   screen_child.x 
=   560 ;
   screen_child.y 
=   16 ;
   screen_child.buttonMode 
=   true ;
   addChild(mu_child);
   mu_child.x 
=   590 ;
   mu_child.y 
=   15 ;
   mu_child.buttonMode 
=   true ;
   url 
=  encodeURI(myxml.child( " swf " )[ 0 ].@url);
   
var  myloader:Loader  =   new  Loader();
   myloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progress_function);
   myloader.contentLoaderInfo.addEventListener(Event.COMPLETE,com);
   myloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,load_error);
   myloader.load(
new  URLRequest(url));
   myloading 
=   new  loading();
   addChild(myloading);
   myloading.x 
=   this .stage.stageWidth  /   3 ;
   myloading.y 
=   this .stage.stageHeight  /   3 ;
   addChild(progress_txt);
   progress_txt.selectable 
=   false ;
   progress_txt.setTextFormat(format);
   progress_txt.text 
=  count  +   " % " ;
   progress_txt.x 
=  myloading.x  +   130 ;
   progress_txt.y 
=  myloading.y  +   95 ;
  }
  private 
function  progress_function(evt:ProgressEvent): void
  {
   count 
=  (evt.bytesLoaded / evt.bytesTotal) * 100;
   progress_txt.text  =  count  +   " % " ;
  }
  private 
function  load_error(evt:IOErrorEvent): void
  {
   progress_txt.textColor 
=   0xff0000 ;
   progress_txt.text 
=   " 加载失败! " ;
  }
  private 
function  DrawInMask():Sprite
  {
   
var  sp:Sprite  =   new  Sprite();
   sp.graphics.beginFill(
0x000000 );
   sp.graphics.drawRect(
0 , 0 ,mc_width,mc_height);
   sp.graphics.endFill();

   
return  sp;
  }
  private 
function  DrawInbg(w:Number,h:Number):Sprite
  {
   
var  sp:Sprite  =   new  Sprite();
   sp.graphics.beginFill(
0xcccccc );
   sp.graphics.drawRect(
0 , 0 ,w,h);
   sp.graphics.endFill();

   
return  sp;
  }
  private 
function  DrawInBar(w:Number,h:Number):Sprite
  {
   
var  sp:Sprite  =   new  Sprite();
   sp.graphics.beginFill(
0x666666 );
   sp.graphics.drawRect(
0 , 0 ,w,h);
   sp.graphics.endFill();

   
return  sp;
  }
  private 
function  com(evt:Event): void
  {
   removeChild(myloading);
   myloading 
=   null ;
   removeChild(progress_txt);
   progress_txt 
=   null ;
   evt.target.content.removeEventListener(ProgressEvent.PROGRESS,progress_function);
   evt.target.content.removeEventListener(Event.COMPLETE,com);
   evt.target.content.removeEventListener(IOErrorEvent.IO_ERROR,load_error);
   mymovie 
=  MovieClip(evt.target.content);
   mymovie.width 
=  mc_width;
   mymovie.height 
=  mc_height;
   num 
=  mymovie.totalFrames;
   addChild(mymovie);
   mymovie.y 
=   30 ;
   mymovie.cacheAsBitmap 
=   true ;
   UIinit();
   up_btn.addEventListener(MouseEvent.CLICK,up_click);
   up_btn.addEventListener(MouseEvent.MOUSE_OVER,up_over);
   up_btn.addEventListener(MouseEvent.MOUSE_OUT,up_out);
   down_btn.addEventListener(MouseEvent.CLICK,down_click);
   down_btn.addEventListener(MouseEvent.MOUSE_OVER,down_over);
   down_btn.addEventListener(MouseEvent.MOUSE_OUT,down_out);
   fd_btn.addEventListener(MouseEvent.CLICK,fangda_click);
   fd_btn.addEventListener(MouseEvent.MOUSE_OVER,fangda_over);
   fd_btn.addEventListener(MouseEvent.MOUSE_OUT,fangda_out);
   sx_btn.addEventListener(MouseEvent.CLICK,suoxiao_click);
   sx_btn.addEventListener(MouseEvent.MOUSE_OVER,suoxiao_over);
   sx_btn.addEventListener(MouseEvent.MOUSE_OUT,suoxiao_out);
   mymovie.addEventListener(MouseEvent.CLICK,mymovie_click);
   mu_child.addEventListener(MouseEvent.CLICK,mu_child_click);
   mu_child.addEventListener(MouseEvent.MOUSE_OVER,mu_child_over);
   mu_child.addEventListener(MouseEvent.MOUSE_OUT,mu_child_out);
   screen_child.addEventListener(MouseEvent.CLICK,screen_child_click);
   screen_child.addEventListener(MouseEvent.MOUSE_OVER,screen_child_over);
   screen_child.addEventListener(MouseEvent.MOUSE_OUT,screen_child_out);
  }
  private 
function  UIinit(): void
  {
   PageTotal.text 
=  String(num);
   Paged.text 
=  String(mymovie.currentFrame);
   scrollmask 
=  DrawInMask();
   scrollmask.x 
=  mymovie.x;
   scrollmask.y 
=  mymovie.y;
   bg 
=  DrawInbg( 15 ,mymovie.height  -   32 );
   bar 
=  DrawInBar( 15 ,mymovie.height  -   200 );
   scrollcont.addChild(up_scrollbtn);
   up_scrollbtn.x 
=   this .stage.stageWidth  -  up_scrollbtn.width  /   2   +   0.5 ;
   up_scrollbtn.y 
=   40 ;
   scrollcont.addChild(bg);
   bg.x 
=   this .stage.stageWidth  -  bg.width;
   bg.y 
=  up_scrollbtn.y  +  up_scrollbtn.height  /   2   - 3 ;
   scrollcont.addChild(down_scrollbtn);
   down_scrollbtn.x 
=  up_scrollbtn.x;
   down_scrollbtn.y 
=  bg.y  +  bg.height  +   6 ;
   scrollcont.addChild(bar);
   bar.x 
=  bg.x;
   bar.y 
=  bg.y;
   addChild(scrollcont);
   left_right_bg 
=  DrawInbg( 580 , 15 );
   left_right_bar 
=  DrawInBar( 580 , 15 );
   left_right_scrollcont.addChild(left_scrollbtn);
   left_scrollbtn.rotation 
=   270 ;
   left_scrollbtn.x 
=  left_scrollbtn.width / 2;
   left_scrollbtn.y  =   880 ;
   left_right_scrollcont.addChild(left_right_bg);
   left_right_bg.x 
=  left_scrollbtn.width  -   4 ;
   left_right_bg.y 
=  left_scrollbtn.y  -  left_scrollbtn.height / 2 + 0.5;
   left_right_scrollcont.addChild(right_scrollbtn);
   right_scrollbtn.rotation 
=   270 ;
   right_scrollbtn.x 
=  left_right_bg.x  +  left_right_bg.width  +   6 ;
   right_scrollbtn.y 
=  left_scrollbtn.y;
   left_right_scrollcont.addChild(left_right_bar);
   left_right_bar.x 
=  left_right_bg.x;
   left_right_bar.y 
=  left_right_bg.y;
   addChild(left_right_scrollcont);
   myscrollbar.obj 
=  mymovie;
   myscrollbar.scrollmask 
=  scrollmask;
   myscrollbar.scrollheight 
=  mymovie.height  -   63 ;
   myscrollbar.textspeed 
=   10 ;
   myscrollbar.bg 
=  bg;
   myscrollbar.bar 
=  bar;
   myscrollbar.up 
=  up_scrollbtn;
   myscrollbar.down 
=  down_scrollbtn;
   myscrollbar.num 
=  nums;
   myscrollbar.Scroll 
=  scrollcont;
   myscrollbar.left 
=  left_scrollbtn;
   myscrollbar.right 
=  right_scrollbtn;
   myscrollbar.left_right_bar 
=  left_right_bar;
   myscrollbar.left_right_bg 
=  left_right_bg;
   myscrollbar.num2 
=  nums;
   myscrollbar.left_right_scroll 
=  left_right_scrollcont;
   myscrollbar.init();
   myscrollbar.init2();
  }
  private 
function  up_click(evt:MouseEvent): void
  {
   
if  (mymovie.currentFrame  !=   1 )
   {
    mymovie.prevFrame();
   }
   
else
   {
    mymovie.gotoAndStop(num);
   }
   Paged.text 
=  String(mymovie.currentFrame);
  }
  private 
function  up_over(evt:MouseEvent): void
  {
   TipTextFiled.addTipTextFiled(
" 上一页 " );
  }
  private 
function  up_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
  private 
function  down_click(evt:MouseEvent): void
  {
   
if  (mymovie.currentFrame  !=  num)
   {
    mymovie.nextFrame();
   }
   
else
   {
    mymovie.gotoAndStop(
1 );
   }
   Paged.text 
=  String(mymovie.currentFrame);
  }
  private 
function  down_over(evt:MouseEvent): void
  {
   TipTextFiled.addTipTextFiled(
" 下一页 " );
  }
  private 
function  down_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
  private 
function  fangda_click(evt:MouseEvent): void
  {
   
if  (mymovie.width  <  mc_width  +   1000   ||  mymovie.height  <  mc_height  +   1000 )
   {
    nums
++ ;
    mymovie.width 
+=    100 ;
    mymovie.height 
+=    100 ;
    mymovie.x 
=  my_x[nums];
    mymovie.y 
=  my_y[nums];
    myscrollbar.update(nums);
    myscrollbar.update2(nums);
   }
  }
  private 
function  fangda_over(evt:MouseEvent): void
  {
   TipTextFiled.addTipTextFiled(
" 放大 " );
  }
  private 
function  fangda_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
  private 
function  suoxiao_click(evt:MouseEvent): void
  {
   
if  (mymovie.width  >  mc_width  ||  mymovie.height  >  mc_height)
   {
    nums
-- ;
    mymovie.width 
-=    100 ;
    mymovie.height 
-=    100 ;
    mymovie.x 
=  my_x[nums];
    mymovie.y 
=  my_y[nums];
    myscrollbar.update(nums);
    myscrollbar.update2(nums);
   }
  }
  private 
function  suoxiao_over(evt:MouseEvent): void
  {
   TipTextFiled.addTipTextFiled(
" 缩小 " );
  }
  private 
function  suoxiao_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
  private 
function  mymovie_click(evt:MouseEvent): void
  {
   
if  ( int (Paged.text)  !=  mymovie.currentFrame)
   {
    Paged.text 
=  String(mymovie.currentFrame);
   }
  }
  private 
function  mu_child_click(evt:MouseEvent): void
  {
   
switch  (stage.displayState)
   {
    
case   " normal "  :
     stage.displayState 
=   " fullScreen " ;
     
break ;
    
case   " fullScreen "  :
    
default  :
     stage.displayState 
=   " normal " ;
     
break ;
   }
  }
  private 
function  mu_child_over(evt:MouseEvent): void
  {
   
switch  (stage.displayState)
   {
    
case   " normal "  :
     TipTextFiled.addTipTextFiled(
" 全屏显示 " );
     
break ;
    
case   " fullScreen "  :
    
default  :
     TipTextFiled.addTipTextFiled(
" 退出全屏 " );
     
break ;
   }
  }
  private 
function  mu_child_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
  private 
function  screen_child_click(evt:MouseEvent): void
  {
   
if (mymovie.width  !=  mc_width  ||  mymovie.height  !=  mc_height)
   {
    nums 
=   0 ;
    mymovie.x 
=   0 ;
    mymovie.y 
=   30 ;
    mymovie.width 
=  mc_width;
    mymovie.height 
=  mc_height;
    myscrollbar.update(nums);
    myscrollbar.update2(nums);
   }
  }
  private 
function  screen_child_over(evt:MouseEvent): void
  {
   TipTextFiled.addTipTextFiled(
" 适屏 " );
  }
  private 
function  screen_child_out(evt:MouseEvent): void
  {
   TipTextFiled.removeTipTextFiled();
  }
 }
}

 

你可能感兴趣的:(as3)