home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / shell.swf / scripts / __Packages / com / comp / ScrollBar.as < prev    next >
Text File  |  2007-10-16  |  12KB  |  288 lines

  1. class com.comp.ScrollBar extends MovieClip
  2. {
  3.    var _nMax = 100;
  4.    var _nMin = 0;
  5.    var _nScrollPosition = 0;
  6.    function ScrollBar(_objRoot, _strSourceClip, _strTargetClip, _iWidth, _iHeight)
  7.    {
  8.       var _loc1_ = this;
  9.       super();
  10.       _loc1_.c_objRoot = _objRoot;
  11.       _loc1_.c_iWidth = _iWidth;
  12.       _loc1_.c_iHeight = _iHeight;
  13.       _loc1_.c_mcTargetClip = _loc1_.c_objRoot[_strTargetClip];
  14.       _loc1_.c_iYpos = _loc1_.c_mcTargetClip._y;
  15.       _loc1_.c_objRoot.attachMovie("BoundingBox","_mcBoundingBox",700);
  16.       _loc1_.c_mcSourceClip = _loc1_.c_objRoot._mcBoundingBox;
  17.       _loc1_.c_iPoschanged = 0;
  18.       _loc1_.init();
  19.    }
  20.    function init()
  21.    {
  22.       var _loc1_ = this;
  23.       _loc1_.c_mcSourceClip._width = _loc1_.c_iWidth;
  24.       _loc1_.c_mcSourceClip._height = _loc1_.c_iHeight;
  25.       _loc1_.c_mcSourceClip._xscale = 100;
  26.       _loc1_.c_mcSourceClip._yscale = 100;
  27.       _loc1_.c_mcSourceClip._x = _loc1_.c_mcTargetClip._x + _loc1_.c_mcTargetClip._width;
  28.       _loc1_.c_mcSourceClip._y = _loc1_.c_mcTargetClip._y;
  29.       mx.events.EventDispatcher.initialize(_loc1_.c_mcSourceClip);
  30.       _loc1_.createChildren();
  31.    }
  32.    function setXY(_iXPos)
  33.    {
  34.       this.c_mcSourceClip._x = _iXPos;
  35.    }
  36.    function createChildren()
  37.    {
  38.       var _loc1_ = this;
  39.       _loc1_.c_mcSourceClip.attachMovie("ScrollUp","_mcScrollUp",220);
  40.       _loc1_.c_mcSourceClip.attachMovie("ScrollTrack","_mcScrollTrack",222);
  41.       _loc1_.c_mcSourceClip.attachMovie("ScrollDown","_mcScrollDown",223);
  42.       _loc1_.c_objRoot._mcBoundingBox.attachMovie("ScrollThumb","_mcScrollThumb",224);
  43.       _loc1_.arrange();
  44.    }
  45.    function arrange()
  46.    {
  47.       var _loc1_ = this;
  48.       _loc1_.c_mcSourceClip._mcScrollTrack._y = _loc1_.c_mcSourceClip._mcScrollUp._height;
  49.       _loc1_.c_mcSourceClip._mcScrollTrack._height = _loc1_.c_iHeight - int(_loc1_.c_mcSourceClip._mcScrollUp._height) - int(_loc1_.c_mcSourceClip._mcScrollDown._height);
  50.       _loc1_.c_mcSourceClip._mcScrollDown._y = _loc1_.c_mcSourceClip._mcScrollTrack._y + _loc1_.c_mcSourceClip._mcScrollTrack._height;
  51.       _loc1_.c_mcSourceClip._mcScrollThumb._x = 0;
  52.       _loc1_.c_mcSourceClip._mcScrollThumb._width = _loc1_.c_mcSourceClip._width;
  53.       _loc1_.c_iDiffrence = _loc1_.c_mcTargetClip._height / _loc1_.c_mcSourceClip._mcScrollTrack._height;
  54.       var _loc3_ = _loc1_.c_mcSourceClip._mcScrollThumb._height;
  55.       if(_loc1_.c_mcTargetClip._height > _loc1_.c_mcSourceClip._height - _loc1_.c_iPoschanged)
  56.       {
  57.          _loc1_.c_mcSourceClip._mcScrollThumb._height = _loc1_.c_mcSourceClip._height * _loc1_.c_mcSourceClip._height / _loc1_.c_mcTargetClip._height;
  58.          if(_loc1_.c_mcSourceClip._mcScrollThumb._height > _loc1_.c_mcSourceClip._mcScrollTrack._height)
  59.          {
  60.             _loc1_.c_mcSourceClip._mcScrollThumb._height = _loc1_.c_mcSourceClip._mcScrollTrack._height;
  61.          }
  62.          else if(_loc1_.c_mcSourceClip._mcScrollThumb._height < _loc3_)
  63.          {
  64.             _loc1_.c_mcSourceClip._mcScrollThumb._height = _loc3_;
  65.          }
  66.       }
  67.       var _loc2_ = (_loc1_._nScrollPosition - _loc1_._nMin) / (_loc1_._nMax - _loc1_._nMin) * (_loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height);
  68.       if(_loc2_ > _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height)
  69.       {
  70.          _loc2_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
  71.       }
  72.       else if(_loc2_ < _loc1_.c_mcSourceClip._mcScrollTrack._y)
  73.       {
  74.          _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
  75.       }
  76.       _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
  77.       _loc1_.init_thumb_y = _loc1_.c_mcSourceClip._mcScrollThumb._y;
  78.       _loc1_.setEvents();
  79.    }
  80.    function setEvents()
  81.    {
  82.       var _loc1_ = this;
  83.       _loc1_.c_mcSourceClip._mcScrollThumb.objRef = _loc1_;
  84.       _loc1_.c_mcSourceClip._mcScrollTrack.objRef = _loc1_;
  85.       _loc1_.c_mcSourceClip._mcScrollUp.objRef = _loc1_;
  86.       _loc1_.c_mcSourceClip._mcScrollDown.objRef = _loc1_;
  87.       _loc1_.c_mcSourceClip._mcScrollThumb.useHandCursor = false;
  88.       _loc1_.c_mcSourceClip._mcScrollTrack.useHandCursor = false;
  89.       _loc1_.c_mcSourceClip._mcScrollUp.useHandCursor = false;
  90.       _loc1_.c_mcSourceClip._mcScrollDown.useHandCursor = false;
  91.       var this_ref = _loc1_;
  92.       _loc1_.c_mcSourceClip._mcScrollThumb.onPress = function()
  93.       {
  94.          var _loc1_ = this;
  95.          _loc1_.startDrag(false,_loc1_._x,_loc1_._parent._mcScrollTrack._y + 1,_loc1_._x,Math.abs(_loc1_._parent._mcScrollDown._y - _loc1_._height) + 0.5);
  96.          var _loc2_ = _loc1_.objRef.c_mcSourceClip._mcScrollThumb._ymouse;
  97.          _loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc2_,1);
  98.       };
  99.       _loc1_.c_mcSourceClip._mcScrollThumb.onRelease = function()
  100.       {
  101.          var _loc1_ = this;
  102.          _loc1_.stopDrag();
  103.          delete _loc1_.objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
  104.          clearInterval(_loc1_._nInterval);
  105.       };
  106.       _loc1_.c_mcSourceClip._mcScrollThumb.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollThumb.onRelease;
  107.       _loc1_.c_mcSourceClip._mcScrollTrack.onPress = function()
  108.       {
  109.          var _loc1_ = this;
  110.          if(_loc1_.objRef.c_mcSourceClip._ymouse + _loc1_.objRef.c_mcSourceClip._mcScrollDown._height > _loc1_._y + _loc1_._height - _loc1_.objRef.c_mcSourceClip._mcScrollThumb._height)
  111.          {
  112.             _loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = _loc1_.objRef.c_mcSourceClip._ymouse - _loc1_.objRef.c_mcSourceClip._mcScrollThumb._height;
  113.             if(this_ref.init_thumb_y > _loc1_.objRef.c_mcSourceClip._mcScrollThumb._y)
  114.             {
  115.                _loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = this_ref.init_thumb_y;
  116.             }
  117.          }
  118.          else
  119.          {
  120.             _loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = _loc1_.objRef.c_mcSourceClip._ymouse;
  121.          }
  122.          _loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc1_._nOffset,0);
  123.       };
  124.       _loc1_.c_mcSourceClip._mcScrollTrack.onRelease = function()
  125.       {
  126.          delete this.objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
  127.          clearInterval(this._nInterval);
  128.       };
  129.       _loc1_.c_mcSourceClip._mcScrollTrack.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollTrack.onRelease;
  130.       _loc1_.c_mcSourceClip._mcScrollUp.onPress = function()
  131.       {
  132.          var _loc1_ = this;
  133.          _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,5,-4,_loc1_.objRef);
  134.       };
  135.       _loc1_.c_mcSourceClip._mcScrollUp.onRelease = function()
  136.       {
  137.          clearInterval(this._nInterval);
  138.       };
  139.       _loc1_.c_mcSourceClip._mcScrollUp.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollUp.onRelease;
  140.       _loc1_.c_mcSourceClip._mcScrollDown.onPress = function()
  141.       {
  142.          var _loc1_ = this;
  143.          _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,5,4,_loc1_.objRef);
  144.       };
  145.       _loc1_.c_mcSourceClip._mcScrollDown.onRelease = function()
  146.       {
  147.          clearInterval(this._nInterval);
  148.       };
  149.       _loc1_.c_mcSourceClip._mcScrollDown.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollDown.onRelease;
  150.    }
  151.    function set min(nMin)
  152.    {
  153.       this._nMin = nMin;
  154.    }
  155.    function get min()
  156.    {
  157.       return this._nMin;
  158.    }
  159.    function set max(nMax)
  160.    {
  161.       this._nMax = nMax;
  162.    }
  163.    function get max()
  164.    {
  165.       return this._nMax;
  166.    }
  167.    function set scrollPosition(nScrollPosition)
  168.    {
  169.       var _loc1_ = this;
  170.       _loc1_._nScrollPosition = nScrollPosition;
  171.       _loc1_.arrange();
  172.    }
  173.    function get scrollPosition()
  174.    {
  175.       var _loc1_ = this;
  176.       var _loc2_ = (_loc1_._mcScrollThumb._y - _loc1_._mcScrollTrack._y) / (_loc1_._mcScrollTrack._height - _loc1_._mcScrollThumb._height) * (_loc1_._nMax - _loc1_._nMin) + _loc1_._nMin;
  177.       return Math.round(_loc2_);
  178.    }
  179.    function set height(nHeight)
  180.    {
  181.       this.setSize(null,nHeight);
  182.    }
  183.    function get height()
  184.    {
  185.       return this.__height;
  186.    }
  187.    function setSize(nW, nH)
  188.    {
  189.       var _loc1_ = this;
  190.       _loc1_._xscale = 100;
  191.       _loc1_._yscale = 100;
  192.       _loc1_.__width = nW;
  193.       _loc1_.__height = nH;
  194.       _loc1_.arrange();
  195.    }
  196.    function scroll(_objRef, _iOffset, _iNo)
  197.    {
  198.       var _loc1_ = _objRef.c_mcSourceClip._mcScrollThumb._y - _iOffset;
  199.       var _loc2_ = _objRef.c_mcSourceClip._mcScrollTrack._y;
  200.       var _loc3_ = _objRef.c_mcSourceClip._mcScrollDown._y - _objRef.c_mcSourceClip._mcScrollThumb._height - 10;
  201.       var nattLower = _objRef.c_mcSourceClip._y - _objRef.c_mcTargetClip._height + _objRef.c_mcSourceClip._height;
  202.       if(_objRef.c_mcTargetClip._height > _objRef.c_mcSourceClip._height)
  203.       {
  204.          if(_loc1_ > _loc2_ && _loc1_ < _loc3_)
  205.          {
  206.             if(_iNo == 0)
  207.             {
  208.                var scrollcoverdist = _objRef.c_mcSourceClip._mcScrollThumb._y * (100 / _objRef.c_mcSourceClip._mcScrollTrack._height);
  209.                var scrollMCdist = (_objRef.c_mcTargetClip._height - _objRef.c_mcSourceClip._height) * (scrollcoverdist / 100);
  210.                var temp = _objRef.c_iYpos - scrollMCdist;
  211.                _objRef.c_mcTargetClip._y = - _objRef.c_mcSourceClip._mcScrollThumb._y * _objRef.c_iDiffrence;
  212.             }
  213.             else if(_iNo == 1)
  214.             {
  215.                _objRef.c_mcSourceClip._mcScrollThumb.onMouseMove = function()
  216.                {
  217.                   var _loc2_ = _objRef.c_mcSourceClip._mcScrollThumb._y * (100 / _objRef.c_mcSourceClip._mcScrollTrack._height);
  218.                   var _loc1_ = (_objRef.c_mcTargetClip._height - _objRef.c_mcSourceClip._height) * (_loc2_ / 100);
  219.                   var temp = _objRef.c_iYpos - _loc1_;
  220.                   _objRef.c_mcTargetClip._y = - this._y * _objRef.c_iDiffrence;
  221.                };
  222.             }
  223.          }
  224.          else if(_loc1_ < _loc2_)
  225.          {
  226.             delete _objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
  227.             _objRef.c_mcTargetClip._y = _objRef.c_iYpos;
  228.          }
  229.          else if(_loc1_ > _loc3_)
  230.          {
  231.             delete _objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
  232.             _objRef.c_mcTargetClip._y = nattLower - _objRef.c_iPoschanged;
  233.          }
  234.       }
  235.       this.dispatchScrollEvent();
  236.       updateAfterEvent();
  237.    }
  238.    function nudge(nIncrement, _objRef)
  239.    {
  240.       var _loc1_ = _objRef;
  241.       var _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
  242.       var _loc3_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
  243.       var nattLower = _loc1_.c_mcSourceClip._y - _loc1_.c_mcTargetClip._height + _loc1_.c_mcSourceClip._height;
  244.       var dist = _loc1_.c_mcTargetClip._height / _loc1_.c_mcSourceClip._height;
  245.       var scrollheight = _loc1_.c_mcSourceClip._mcScrollTrack._height / Math.floor(dist);
  246.       var movieheight = _loc1_.c_mcTargetClip._height / Math.ceil(dist);
  247.       if(scrollheight <= _loc1_.c_mcSourceClip._mcScrollTrack._height)
  248.       {
  249.          _loc1_.c_mcSourceClip._mcScrollThumb._y += nIncrement;
  250.          _loc1_.c_mcTargetClip._y -= nIncrement * _loc1_.c_iDiffrence;
  251.       }
  252.       if(_loc1_.c_mcSourceClip._mcScrollThumb._y < _loc2_)
  253.       {
  254.          _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
  255.          _loc1_.c_mcTargetClip._y = _loc1_.c_iYpos;
  256.       }
  257.       else if(_loc1_.c_mcSourceClip._mcScrollThumb._y > _loc3_)
  258.       {
  259.          _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc3_;
  260.          _loc1_.c_mcTargetClip._y = nattLower - _loc1_.c_iPoschanged;
  261.       }
  262.       updateAfterEvent();
  263.    }
  264.    function dispatchScrollEvent()
  265.    {
  266.       var _loc1_ = this;
  267.       if(_loc1_._mcScrollThumb._y != _loc1_._nPrevScroll)
  268.       {
  269.          _loc1_.dispatchEvent({type:"scroll",target:_loc1_});
  270.          _loc1_._nPrevScroll = _loc1_._mcScrollThumb._y;
  271.       }
  272.    }
  273.    function removeScrollBar(_objRef)
  274.    {
  275.       this.c_mcSourceClip.removeMovieClip();
  276.    }
  277.    function setY(_iYPos)
  278.    {
  279.       var _loc1_ = this;
  280.       _loc1_.c_mcSourceClip._y += _iYPos;
  281.       _loc1_.c_iPoschanged = _iYPos;
  282.    }
  283.    function setX(_iXPos)
  284.    {
  285.       this.c_mcSourceClip._x += _iXPos;
  286.    }
  287. }
  288.