home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / fscommand / assets / swfs / ScrollBar.swf / scripts / __Packages / com / comp / ScrollBar.as
Encoding:
Text File  |  2007-06-04  |  8.1 KB  |  208 lines

  1. class com.comp.ScrollBar extends MovieClip
  2. {
  3.    var _nInterval;
  4.    var __height;
  5.    var _nMax = 100;
  6.    var _nMin = 0;
  7.    var _nScrollPosition = 0;
  8.    function ScrollBar(_objRoot, _strSourceClip, _strTargetClip, _iWidth, _iHeight)
  9.    {
  10.       var _loc1_ = this;
  11.       super();
  12.       _loc1_.c_objRoot = _objRoot;
  13.       _loc1_.c_iWidth = _iWidth;
  14.       _loc1_.c_iHeight = _iHeight;
  15.       _loc1_.c_mcTargetClip = _loc1_.c_objRoot[_strTargetClip];
  16.       _loc1_.c_iYpos = _loc1_.c_mcTargetClip._y;
  17.       _loc1_.c_objRoot.attachMovie("BoundingBox","_mcBoundingBox",210);
  18.       _loc1_.c_mcSourceClip = _loc1_.c_objRoot._mcBoundingBox;
  19.       _loc1_.init();
  20.    }
  21.    function init()
  22.    {
  23.       var _loc1_ = this;
  24.       _loc1_.c_mcSourceClip._width = _loc1_.c_iWidth;
  25.       _loc1_.c_mcSourceClip._height = _loc1_.c_iHeight;
  26.       _loc1_.c_mcSourceClip._xscale = 100;
  27.       _loc1_.c_mcSourceClip._yscale = 100;
  28.       _loc1_.c_mcSourceClip._x = _loc1_.c_mcTargetClip._x + _loc1_.c_mcTargetClip._width;
  29.       _loc1_.c_mcSourceClip._y = _loc1_.c_mcTargetClip._y;
  30.       mx.events.EventDispatcher.initialize(_loc1_.c_mcSourceClip);
  31.       _loc1_.createChildren();
  32.    }
  33.    function createChildren()
  34.    {
  35.       var _loc1_ = this;
  36.       _loc1_.c_mcSourceClip.attachMovie("ScrollUp","_mcScrollUp",220);
  37.       _loc1_.c_mcSourceClip.attachMovie("ScrollTrack","_mcScrollTrack",222);
  38.       _loc1_.c_mcSourceClip.attachMovie("ScrollDown","_mcScrollDown",223);
  39.       _loc1_.c_objRoot._mcBoundingBox.attachMovie("ScrollThumb","_mcScrollThumb",224);
  40.       _loc1_.arrange();
  41.    }
  42.    function arrange()
  43.    {
  44.       var _loc1_ = this;
  45.       _loc1_.c_mcSourceClip._mcScrollTrack._y = _loc1_.c_mcSourceClip._mcScrollUp._height;
  46.       _loc1_.c_mcSourceClip._mcScrollTrack._height = _loc1_.c_iHeight - int(_loc1_.c_mcSourceClip._mcScrollUp._height) - int(_loc1_.c_mcSourceClip._mcScrollDown._height);
  47.       _loc1_.c_mcSourceClip._mcScrollDown._y = _loc1_.c_mcSourceClip._mcScrollTrack._y + _loc1_.c_mcSourceClip._mcScrollTrack._height;
  48.       _loc1_.c_mcSourceClip._mcScrollThumb._x = 1;
  49.       var _loc2_ = (_loc1_._nScrollPosition - _loc1_._nMin) / (_loc1_._nMax - _loc1_._nMin) * (_loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height);
  50.       if(_loc2_ > _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height)
  51.       {
  52.          _loc2_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
  53.       }
  54.       else if(_loc2_ < _loc1_.c_mcSourceClip._mcScrollTrack._y)
  55.       {
  56.          _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
  57.       }
  58.       _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
  59.       _loc1_.c_mcSourceClip._mcScrollThumb.objRef = _loc1_;
  60.       _loc1_.c_mcSourceClip._mcScrollUp.objRef = _loc1_;
  61.       _loc1_.c_mcSourceClip._mcScrollDown.objRef = _loc1_;
  62.       _loc1_.c_mcSourceClip._mcScrollThumb.onPress = function()
  63.       {
  64.          var _loc1_ = this;
  65.          var _loc2_ = _loc1_.objRef.c_mcSourceClip._mcScrollThumb._ymouse;
  66.          _loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc2_);
  67.       };
  68.       _loc1_.c_mcSourceClip._mcScrollThumb.onRelease = function()
  69.       {
  70.          clearInterval(this._nInterval);
  71.       };
  72.       _loc1_.c_mcSourceClip._mcScrollThumb.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollThumb.onRelease;
  73.       _loc1_.c_mcSourceClip._mcScrollUp.onPress = function()
  74.       {
  75.          var _loc1_ = this;
  76.          _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,50,-1,_loc1_.objRef);
  77.       };
  78.       _loc1_.c_mcSourceClip._mcScrollUp.onRelease = function()
  79.       {
  80.          clearInterval(this._nInterval);
  81.       };
  82.       _loc1_.c_mcSourceClip._mcScrollUp.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollUp.onRelease;
  83.       _loc1_.c_mcSourceClip._mcScrollDown.onPress = function()
  84.       {
  85.          var _loc1_ = this;
  86.          _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,50,1,_loc1_.objRef);
  87.       };
  88.       _loc1_.c_mcSourceClip._mcScrollDown.onRelease = function()
  89.       {
  90.          clearInterval(this._nInterval);
  91.       };
  92.       _loc1_.c_mcSourceClip._mcScrollDown.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollDown.onRelease;
  93.    }
  94.    function set min(nMin)
  95.    {
  96.       this._nMin = nMin;
  97.    }
  98.    function get min()
  99.    {
  100.       return this._nMin;
  101.    }
  102.    function set max(nMax)
  103.    {
  104.       this._nMax = nMax;
  105.    }
  106.    function get max()
  107.    {
  108.       return this._nMax;
  109.    }
  110.    function set scrollPosition(nScrollPosition)
  111.    {
  112.       var _loc1_ = this;
  113.       _loc1_._nScrollPosition = nScrollPosition;
  114.       _loc1_.arrange();
  115.    }
  116.    function get scrollPosition()
  117.    {
  118.       var _loc1_ = this;
  119.       var _loc2_ = (_loc1_._mcScrollThumb._y - _loc1_._mcScrollTrack._y) / (_loc1_._mcScrollTrack._height - _loc1_._mcScrollThumb._height) * (_loc1_._nMax - _loc1_._nMin) + _loc1_._nMin;
  120.       return Math.round(_loc2_);
  121.    }
  122.    function set height(nHeight)
  123.    {
  124.       this.setSize(null,nHeight);
  125.       trace(nHeight);
  126.    }
  127.    function get height()
  128.    {
  129.       return this.__height;
  130.    }
  131.    function setSize(nW, nH)
  132.    {
  133.       var _loc1_ = this;
  134.       _loc1_._xscale = 100;
  135.       _loc1_._yscale = 100;
  136.       _loc1_.__width = nW;
  137.       _loc1_.__height = nH;
  138.       _loc1_.arrange();
  139.    }
  140.    function scroll(_objRef, _iOffset)
  141.    {
  142.       var _loc1_ = _objRef;
  143.       var _loc2_ = _loc1_.c_mcSourceClip._ymouse - _iOffset;
  144.       var _loc3_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
  145.       var nLower = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
  146.       var nattLower = _loc1_.c_mcSourceClip._y - _loc1_.c_mcTargetClip._height + _loc1_.c_mcSourceClip._height;
  147.       if(_loc1_.c_mcTargetClip._height > _loc1_.c_mcSourceClip._height)
  148.       {
  149.          if(_loc2_ > _loc3_ && _loc2_ < nLower)
  150.          {
  151.             _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc1_.c_mcSourceClip._ymouse - _iOffset;
  152.             var scrollcoverdist = _loc1_.c_mcSourceClip._mcScrollThumb._y * (100 / _loc1_.c_mcSourceClip._mcScrollTrack._height);
  153.             var scrollMCdist = (_loc1_.c_mcTargetClip._height - _loc1_.c_mcSourceClip._height) * (scrollcoverdist / 100);
  154.             var temp = _loc1_.c_iYpos - scrollMCdist;
  155.             _loc1_.c_mcTargetClip._y = temp;
  156.          }
  157.          else if(_loc2_ < _loc3_)
  158.          {
  159.             _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc3_;
  160.             _loc1_.c_mcTargetClip._y = _loc1_.c_iYpos;
  161.          }
  162.          else if(_loc2_ > nLower)
  163.          {
  164.             _loc1_.c_mcSourceClip._mcScrollThumb._y = nLower;
  165.             _loc1_.c_mcTargetClip._y = nattLower;
  166.          }
  167.       }
  168.       this.dispatchScrollEvent();
  169.       updateAfterEvent();
  170.    }
  171.    function nudge(nIncrement, _objRef)
  172.    {
  173.       var _loc1_ = _objRef;
  174.       var _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
  175.       var _loc3_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
  176.       var nattLower = _loc1_.c_mcSourceClip._y - _loc1_.c_mcTargetClip._height + _loc1_.c_mcSourceClip._height;
  177.       var dist = _loc1_.c_mcTargetClip._height / _loc1_.c_mcSourceClip._height;
  178.       var scrollheight = _loc1_.c_mcSourceClip._mcScrollTrack._height / Math.floor(dist);
  179.       var movieheight = _loc1_.c_mcTargetClip._height / Math.ceil(dist);
  180.       if(scrollheight <= _loc1_.c_mcSourceClip._mcScrollTrack._height)
  181.       {
  182.          _loc1_.c_mcSourceClip._mcScrollThumb._y += nIncrement;
  183.          _loc1_.c_mcTargetClip._y -= nIncrement;
  184.       }
  185.       if(_loc1_.c_mcSourceClip._mcScrollThumb._y < _loc2_)
  186.       {
  187.          _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
  188.          _loc1_.c_mcTargetClip._y = _loc1_.c_iYpos;
  189.       }
  190.       else if(_loc1_.c_mcSourceClip._mcScrollThumb._y > _loc3_)
  191.       {
  192.          _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc3_;
  193.          _loc1_.c_mcTargetClip._y = nattLower;
  194.       }
  195.       this.dispatchScrollEvent();
  196.       updateAfterEvent();
  197.    }
  198.    function dispatchScrollEvent()
  199.    {
  200.       var _loc1_ = this;
  201.       if(_loc1_._mcScrollThumb._y != _loc1_._nPrevScroll)
  202.       {
  203.          _loc1_.dispatchEvent({type:"scroll",target:_loc1_});
  204.          _loc1_._nPrevScroll = _loc1_._mcScrollThumb._y;
  205.       }
  206.    }
  207. }
  208.