宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]AS3滚动条源代码实例

2016-10-13 00:16:48 点击量:9 标签: 收藏本文

滚动条在FLASH应用中极其广泛,对于FLASH WEB开发的从业者来说几乎每天都在使用它。制作上看上去算不上简单,当然也不难,关键掌握它的滚动原理,滚动条的制作就自然不是问题。

滚动公式:

滚动内容的位置 = 内容的起始位置 - (滚动百分比 x 可滚动区域)

  1. package { 
  2.  import flash.display.MovieClip; 
  3.  import flash.events.MouseEvent; 
  4.  import flash.geom.Rectangle; 
  5.  import flash.events.Event; 
  6.  public class scrollbar extends MovieClip { 
  7.   private var maskmc:MovieClip; 
  8.   private var line:MovieClip; 
  9.   private var main:MovieClip; 
  10.   private var btn:MovieClip; 
  11.   private var Rect:int; 
  12.   private var del:int=10
  13.   public function scrollbar():void { 
  14.    init(); 
  15.   } 
  16.   private function init():void { 
  17.    main = new Main_mc(); 
  18.    addChild(main); 
  19.    maskmc = new Mask_mc(); 
  20.    addChild(maskmc); 
  21.    line = new Line_mc(); 
  22.    addChild(line); 
  23.    btn = new s_btn(); 
  24.    addChild(btn); 
  25.    main.mask = maskmc
  26.    btn.buttonMode = true
  27.    line.x=btn.x=stage.stageWidth-line.width/2; 
  28.    main.x=maskmc.x=main.width/2; 
  29.    btn.addEventListener(MouseEvent.MOUSE_OVER,Bover); 
  30.    btn.addEventListener(MouseEvent.MOUSE_OUT,Bout); 
  31.    btn.addEventListener(MouseEvent.MOUSE_DOWN,Bdown); 
  32.    btn.addEventListener(MouseEvent.MOUSE_UP,Bup); 
  33.    btn.addEventListener(Event.ENTER_FRAME,Bscroll); 
  34.    addEventListener(MouseEvent.MOUSE_WHEEL,Bwheel); 
  35.   } 
  36.   private function Bover(e:MouseEvent):void { 
  37.    btn.gotoAndPlay("v1"); 
  38.  
  39.   } 
  40.   //www.cuplayer.com提示:鼠标移出时 
  41.   private function Bout(e:MouseEvent):void { 
  42.    btn.gotoAndPlay("v2"); 
  43.     
  44.    btn.stage.addEventListener(MouseEvent.MOUSE_UP,Bup); 
  45.     
  46.    btn.stage.addEventListener(Event.ENTER_FRAME,Bscroll); 
  47.  
  48.   } 
  49.   //www.cuplayer.com提示:鼠标按下时 
  50.   private function Bdown(e:MouseEvent):void { 
  51.    var Rect:Rectangle = new Rectangle(line.x,0,0,line.height-btn.height); 
  52.    btn.startDrag(false,Rect); 
  53.   } 
  54.   //www.cuplayer.com提示:鼠标弹起时 
  55.   private function Bup(e:MouseEvent):void { 
  56.    btn.stopDrag(); 
  57.    btn.removeEventListener(Event.ENTER_FRAME,Bscroll); 
  58.    
  59.   } 
  60.   //www.cuplayer.com提示:移动控制 
  61.   private function Bscroll(e:Event):void { 
  62.    var mainY:int =-btn.y*(main.height-maskmc.height)/(line.height-btn.height); 
  63.    main.y+=(mainY-main.y)/5; 
  64.   } 
  65.   //www.cuplayer.com提示:鼠标滚轮滚动时 
  66.   private function Bwheel(e:MouseEvent) { 
  67.    var _delta:int=e.delta; 
  68.    if (_delta>0) { 
  69.     if (btn.y>0) { 
  70.      btn.y-=del
  71.     } else { 
  72.      btn.y=0
  73.     } 
  74.    } else { 
  75.     if (btn.y<line.height-btn.height) { 
  76.      btn.y+=del; 
  77.     } else { 
  78.      btn.y=line.height-btn.height; 
  79.     } 
  80.    } 
  81.   } 
  82.  
  83.  } 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室