home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / fscommand / linux / main.swf / scripts / __Packages / com / comp / ScrollBar.as < prev    next >
Encoding:
Text File  |  2007-09-06  |  12.1 KB  |  292 lines

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