home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / controls / scrollClasses / ScrollThumb.as < prev   
Encoding:
Text File  |  2010-06-23  |  2.9 KB  |  94 lines

  1. package mx.controls.scrollClasses
  2. {
  3.    import flash.events.MouseEvent;
  4.    import flash.geom.Point;
  5.    import mx.controls.Button;
  6.    import mx.core.mx_internal;
  7.    import mx.events.ScrollEventDetail;
  8.    
  9.    use namespace mx_internal;
  10.    
  11.    public class ScrollThumb extends Button
  12.    {
  13.       mx_internal static const VERSION:String = "3.5.0.12683";
  14.       
  15.       private var lastY:Number;
  16.       
  17.       private var datamin:Number;
  18.       
  19.       private var ymax:Number;
  20.       
  21.       private var ymin:Number;
  22.       
  23.       private var datamax:Number;
  24.       
  25.       public function ScrollThumb()
  26.       {
  27.          super();
  28.          explicitMinHeight = 10;
  29.          stickyHighlighting = true;
  30.       }
  31.       
  32.       private function stopDragThumb() : void
  33.       {
  34.          var _loc1_:ScrollBar = ScrollBar(parent);
  35.          _loc1_.mx_internal::isScrolling = false;
  36.          _loc1_.mx_internal::dispatchScrollEvent(_loc1_.mx_internal::oldPosition,ScrollEventDetail.THUMB_POSITION);
  37.          _loc1_.mx_internal::oldPosition = NaN;
  38.          systemManager.getSandboxRoot().removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  39.       }
  40.       
  41.       override protected function mouseDownHandler(param1:MouseEvent) : void
  42.       {
  43.          super.mouseDownHandler(param1);
  44.          var _loc2_:ScrollBar = ScrollBar(parent);
  45.          _loc2_.mx_internal::oldPosition = _loc2_.scrollPosition;
  46.          lastY = param1.localY;
  47.          systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  48.       }
  49.       
  50.       private function mouseMoveHandler(param1:MouseEvent) : void
  51.       {
  52.          if(ymin == ymax)
  53.          {
  54.             return;
  55.          }
  56.          var _loc2_:Point = new Point(param1.stageX,param1.stageY);
  57.          _loc2_ = globalToLocal(_loc2_);
  58.          var _loc3_:Number = _loc2_.y - lastY;
  59.          _loc3_ += y;
  60.          if(_loc3_ < ymin)
  61.          {
  62.             _loc3_ = ymin;
  63.          }
  64.          else if(_loc3_ > ymax)
  65.          {
  66.             _loc3_ = ymax;
  67.          }
  68.          var _loc4_:ScrollBar = ScrollBar(parent);
  69.          _loc4_.mx_internal::isScrolling = true;
  70.          mx_internal::$y = _loc3_;
  71.          var _loc5_:Number = _loc4_.scrollPosition;
  72.          var _loc6_:Number = Math.round((datamax - datamin) * (y - ymin) / (ymax - ymin)) + datamin;
  73.          _loc4_.scrollPosition = _loc6_;
  74.          _loc4_.mx_internal::dispatchScrollEvent(_loc5_,ScrollEventDetail.THUMB_TRACK);
  75.          param1.updateAfterEvent();
  76.       }
  77.       
  78.       override mx_internal function buttonReleased() : void
  79.       {
  80.          super.mx_internal::buttonReleased();
  81.          stopDragThumb();
  82.       }
  83.       
  84.       mx_internal function setRange(param1:Number, param2:Number, param3:Number, param4:Number) : void
  85.       {
  86.          this.ymin = param1;
  87.          this.ymax = param2;
  88.          this.datamin = param3;
  89.          this.datamax = param4;
  90.       }
  91.    }
  92. }
  93.  
  94.