·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3压缩位图BitmapData.encode用法源代码示例(4)

时间:2013-11-04 09:02cnblogs.com
ScrollBar.as packagecom.vini123.tool { importflash.display.Sprite; importflash.events.Event; importflash.events.MouseEvent; importflash.geom.Rectangle; publicclassScrollBarextendsSprite { privatevar_

ScrollBar.as  

  1. package com.vini123.tool 
  2. { 
  3.     import flash.display.Sprite; 
  4.     import flash.events.Event; 
  5.     import flash.events.MouseEvent; 
  6.     import flash.geom.Rectangle; 
  7.  
  8.     public class ScrollBar extends Sprite 
  9.     { 
  10.         private var _upBtn:UpBtn; 
  11.         private var _downBtn:DownBtn; 
  12.         private var _lineBar:LineBar; 
  13.         private var _dragBar:DragBar; 
  14.         private var _gap:int = 2; 
  15.         private var _rec:Rectangle; 
  16.  
  17.         private var _dirction:int; 
  18.         private var _scrollTarget:*; 
  19.         private var _barWidth:Number; 
  20.         private var _lineColor:int; 
  21.         private var _visible:Boolean = false; 
  22.  
  23.         public function ScrollBar():void 
  24.         { 
  25.             addEventListener(Event.ADDED_TO_STAGE,addToStageHandler); 
  26.         } 
  27.  
  28.         private function addToStageHandler(e:Event):void 
  29.         { 
  30.             removeEventListener(Event.ADDED_TO_STAGE,addToStageHandler); 
  31.             _upBtn = new UpBtn(); 
  32.             _downBtn = new DownBtn(); 
  33.             _lineBar = new LineBar(); 
  34.             _dragBar = new DragBar(); 
  35.             addChild(_upBtn); 
  36.             addChild(_downBtn); 
  37.             addChild(_lineBar); 
  38.             addChild(_dragBar); 
  39.             _dragBar.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler); 
  40.             _dragBar.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler); 
  41.             stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); 
  42.             stage.addEventListener(MouseEvent.MOUSE_WHEEL,mouseWheelHandler); 
  43.  
  44.             _downBtn.addEventListener(MouseEvent.CLICK,clickHandler); 
  45.             _upBtn.addEventListener(MouseEvent.CLICK,clickHandler); 
  46.         } 
  47.  
  48.         private function mouseWheelHandler(e:MouseEvent):void 
  49.         { 
  50.             var _distance:Number = e.delta * 3; 
  51.             _dragBar.y +=  _distance; 
  52.             updateDragBarPosition(); 
  53.         } 
  54.  
  55.  
  56.         private function clickHandler(e:MouseEvent):void 
  57.         { 
  58.             var _distance:Number; 
  59.             _distance = _lineBar.height * 0.2; 
  60.             switch (e.target) 
  61.             { 
  62.                 case _downBtn : 
  63.                     _dragBar.y -=  _distance; 
  64.                     break; 
  65.                 case _upBtn : 
  66.                     _dragBar.y +=  _distance; 
  67.                     break; 
  68.             } 
  69.             updateDragBarPosition(); 
  70.         } 
  71.  
  72.         private function updateDragBarPosition():void 
  73.         { 
  74.             if (_dragBar.y <= _lineBar.y) 
  75.             { 
  76.                 _dragBar.y = _lineBar.y; 
  77.             } 
  78.             else if (_dragBar.y >= (_lineBar.y + _lineBar.height - _dragBar.height)) 
  79.             { 
  80.                 _dragBar.y = (_lineBar.y + _lineBar.height - _dragBar.height); 
  81.             } 
  82.             enterHandler(); 
  83.         } 
  84.  
  85.         private function mouseDownHandler(e:MouseEvent):void 
  86.         { 
  87.             _dragBar.startDrag(false,_rec); 
  88.             useHandler(); 
  89.         } 
  90.  
  91.         private function mouseUpHandler(e:MouseEvent):void 
  92.         { 
  93.             _dragBar.stopDrag(); 
  94.             noHandler(); 
  95.         } 
  96.  
  97.         private function updateBar():void 
  98.         { 
  99.             _upBtn.y = 0; 
  100.             _lineBar.y = _upBtn.y + _upBtn.height + _gap; 
  101.             _downBtn.y = _lineBar.y + _lineBar.height + _gap; 
  102.             _dragBar.x = 1; 
  103.             _dragBar.y = _lineBar.y; 
  104.             _rec = new Rectangle(_dragBar.x,_lineBar.y,0,(_lineBar.height - _dragBar.height)); 
  105.         } 
  106.  
  107.         /** 
  108.          *  设置拖动条的属性  
  109.          * @param _length  拖动条的总长度(竖向就是总高度,横向的就是总宽度) 
  110.          * @param _width   拖动条的宽度 (指的是上下两个按钮的宽度和高度) 
  111.          * @param _lineColor 拖动条的线条颜色 
  112.          * @param _fillColor 拖动条的填充颜色 
  113.          * @param _triangleColor 上下两个按钮里边三角形的填充颜色 
  114.          * @param _dirction 表示拖动条的方向,值为0的时候是竖向,为1的时候是横向 
  115.          * @param _visible 表示当被拖动对象小于或等于拖动条的长度时,是否显示拖动条。 
  116.          *  
  117.          */ 
  118.         public function setSize(_length:Number,_width:Number,_lineColor:int,_fillColor:int,_triangleColor:int,_dirction:int,_visible:Boolean = false):void 
  119.         { 
  120.             this._dirction = _dirction; 
  121.             _upBtn.beginDraw(_width,_lineColor,_fillColor,_triangleColor); 
  122.             _downBtn.beginDraw(_width,_lineColor,_fillColor,_triangleColor); 
  123.             _dragBar.beginDraw(_width,(_length - _upBtn.height - _downBtn.height -_gap *2)*0.5,_lineColor); 
  124.             _lineBar.beginDraw(_width,(_length - _upBtn.height - _downBtn.height -_gap *2),_lineColor,_fillColor); 
  125.              
  126.             this._barWidth = _width; 
  127.             this._lineColor = _lineColor; 
  128.             this._visible = _visible; 
  129.             updateBar(); 
  130.         } 
  131.  
  132.         /** 
  133.          *设置被拖动的对象  
  134.          * @param value 
  135.          *  
  136.          */ 
  137.         public function set scrollTarget(value:*):void 
  138.         { 
  139.             _scrollTarget = value; 
  140.             var _h1:Number = this.height > _scrollTarget.height ? _lineBar.height :(this.height / _scrollTarget.height) *_lineBar.height; 
  141.             _h1_h1 = _h1 < 30 ? 30:_h1; 
  142.             _dragBar.beginDraw(_barWidth,_h1,_lineColor); 
  143.             _rec = new Rectangle(_dragBar.x,_lineBar.y,0,(_lineBar.height - _dragBar.height)); 
  144.             enterHandler(); 
  145.         } 
  146.  
  147.         private function enterHandler(e:Event = null):void 
  148.         { 
  149.             if (_lineBar.height == _dragBar.height) 
  150.             { 
  151.                 if (! _visible) 
  152.                 { 
  153.                     this.visible = false; 
  154.                 } 
  155.                 _scrollTarget.y = this.y; 
  156.             } 
  157.             else 
  158.             { 
  159.                 this.visible = true; 
  160.                 _scrollTarget.y = this.y + (_dragBar.y - _lineBar.y) * (this.height - _scrollTarget.height)/(_lineBar.height - _dragBar.height); 
  161.             } 
  162.         } 
  163.  
  164.         private function useHandler():void 
  165.         { 
  166.             addEventListener(Event.ENTER_FRAME,enterHandler); 
  167.         } 
  168.  
  169.         private function noHandler():void 
  170.         { 
  171.             removeEventListener(Event.ENTER_FRAME,enterHandler); 
  172.         } 
  173.     } 
  174. } 
  175.  
  176. import flash.display.Shape; 
  177. import flash.display.Sprite; 
  178.  
  179. class UpBtn extends Sprite 
  180. { 
  181.     private var _rect:Shape; 
  182.     private var _triangle:Shape; 
  183.     public function UpBtn():void 
  184.     { 
  185.         _rect = new Shape(); 
  186.         _triangle = new Shape(); 
  187.         addChild(_rect); 
  188.         addChild(_triangle); 
  189.     } 
  190.  
  191.     public function beginDraw(_h:Number,_lineColor:int,_fillColor:int,_triangleColor:int):void 
  192.     { 
  193.         _rect.graphics.clear(); 
  194.         _rect.graphics.lineStyle(1,_lineColor); 
  195.         _rect.graphics.beginFill(_fillColor,1); 
  196.         _rect.graphics.drawRect(0,0,_h,_h); 
  197.         _rect.graphics.endFill(); 
  198.  
  199.         _triangle.graphics.clear(); 
  200.         _triangle.graphics.lineStyle(1,_triangleColor); 
  201.         _triangle.graphics.beginFill(_triangleColor,1); 
  202.  
  203.         _triangle.graphics.moveTo(_h/3,0); 
  204.         _triangle.graphics.lineTo(2*_h/3,_h/2.5); 
  205.         _triangle.graphics.lineTo(0,_h/2.5); 
  206.         _triangle.graphics.lineTo(_h/3,0); 
  207.  
  208.         _triangle.x = _rect.width * 0.5 - _triangle.width * 0.5; 
  209.         _triangle.y = _rect.height * 0.5 - _triangle.height * 0.5; 
  210.     } 
  211. } 
  212.  
  213. class DownBtn extends Sprite 
  214. { 
  215.     private var _rect:Shape; 
  216.     private var _triangle:Shape; 
  217.  
  218.     public function DownBtn():void 
  219.     { 
  220.         _rect = new Shape(); 
  221.         _triangle = new Shape(); 
  222.         addChild(_rect); 
  223.         addChild(_triangle); 
  224.     } 
  225.  
  226.     public function beginDraw(_h:int,_lineColor:int,_fillColor:int,_triangleColor:int):void 
  227.     { 
  228.         _rect.graphics.clear(); 
  229.         _rect.graphics.lineStyle(1,_lineColor); 
  230.         _rect.graphics.beginFill(_fillColor,1); 
  231.         _rect.graphics.drawRect(0,0,_h,_h); 
  232.         _rect.graphics.endFill(); 
  233.  
  234.         _triangle.graphics.clear(); 
  235.         _triangle.graphics.lineStyle(1,_triangleColor); 
  236.         _triangle.graphics.beginFill(_triangleColor,1); 
  237.         _triangle.graphics.moveTo(0,0); 
  238.         _triangle.graphics.lineTo(2*_h/3,0); 
  239.         _triangle.graphics.lineTo(_h/3,_h/2.5); 
  240.         _triangle.graphics.lineTo(0,0); 
  241.  
  242.         _triangle.x = _rect.width * 0.5 - _triangle.width * 0.5; 
  243.         _triangle.y = _rect.height * 0.5 - _triangle.height * 0.5; 
  244.     } 
  245. } 
  246.  
  247. class LineBar extends Sprite 
  248. { 
  249.  
  250.     private var _rect:Shape; 
  251.     public function LineBar():void 
  252.     { 
  253.         _rect = new Shape(); 
  254.         addChild(_rect); 
  255.     } 
  256.  
  257.     public function beginDraw(_w:int,_h:int,_lineColor:int,_fillColor:int):void 
  258.     { 
  259.         _rect.graphics.clear(); 
  260.         _rect.graphics.lineStyle(1,_lineColor); 
  261.         _rect.graphics.beginFill(_fillColor,1); 
  262.         _rect.graphics.drawRect(0,0,_w,_h); 
  263.         _rect.graphics.endFill(); 
  264.     } 
  265. } 
  266.  
  267. class DragBar extends Sprite 
  268. { 
  269.     private var _rect:Shape; 
  270.     public function DragBar():void 
  271.     { 
  272.         _rect = new Shape(); 
  273.         addChild(_rect); 
  274.         beginDraw(15,100,0xFFF8E9); 
  275.     } 
  276.  
  277.     public function beginDraw(_w:int,_h:int,_fillColor:int):void 
  278.     { 
  279.         _rect.graphics.clear(); 
  280.         _rect.graphics.beginFill(_fillColor,1); 
  281.         _rect.graphics.drawRect(0,0,(_w-1),_h); 
  282.         _rect.graphics.endFill(); 
  283.     } 
  284. } 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器