home *** CD-ROM | disk | FTP | other *** search
- class com.comp.ScrollBar extends MovieClip
- {
- var _nInterval;
- var __height;
- var _nMax = 100;
- var _nMin = 0;
- var _nScrollPosition = 0;
- function ScrollBar(_objRoot, _strSourceClip, _strTargetClip, _iWidth, _iHeight)
- {
- var _loc1_ = this;
- super();
- _loc1_.c_objRoot = _objRoot;
- _loc1_.c_iWidth = _iWidth;
- _loc1_.c_iHeight = _iHeight;
- _loc1_.c_mcTargetClip = _loc1_.c_objRoot[_strTargetClip];
- _loc1_.c_iYpos = _loc1_.c_mcTargetClip._y;
- _loc1_.c_objRoot.attachMovie("BoundingBox","_mcBoundingBox",210);
- _loc1_.c_mcSourceClip = _loc1_.c_objRoot._mcBoundingBox;
- _loc1_.init();
- }
- function init()
- {
- var _loc1_ = this;
- _loc1_.c_mcSourceClip._width = _loc1_.c_iWidth;
- _loc1_.c_mcSourceClip._height = _loc1_.c_iHeight;
- _loc1_.c_mcSourceClip._xscale = 100;
- _loc1_.c_mcSourceClip._yscale = 100;
- _loc1_.c_mcSourceClip._x = _loc1_.c_mcTargetClip._x + _loc1_.c_mcTargetClip._width;
- _loc1_.c_mcSourceClip._y = _loc1_.c_mcTargetClip._y;
- mx.events.EventDispatcher.initialize(_loc1_.c_mcSourceClip);
- _loc1_.createChildren();
- }
- function createChildren()
- {
- var _loc1_ = this;
- _loc1_.c_mcSourceClip.attachMovie("ScrollUp","_mcScrollUp",220);
- _loc1_.c_mcSourceClip.attachMovie("ScrollTrack","_mcScrollTrack",222);
- _loc1_.c_mcSourceClip.attachMovie("ScrollDown","_mcScrollDown",223);
- _loc1_.c_objRoot._mcBoundingBox.attachMovie("ScrollThumb","_mcScrollThumb",224);
- _loc1_.arrange();
- }
- function arrange()
- {
- var _loc1_ = this;
- _loc1_.c_mcSourceClip._mcScrollTrack._y = _loc1_.c_mcSourceClip._mcScrollUp._height;
- _loc1_.c_mcSourceClip._mcScrollTrack._height = _loc1_.c_iHeight - int(_loc1_.c_mcSourceClip._mcScrollUp._height) - int(_loc1_.c_mcSourceClip._mcScrollDown._height);
- _loc1_.c_mcSourceClip._mcScrollDown._y = _loc1_.c_mcSourceClip._mcScrollTrack._y + _loc1_.c_mcSourceClip._mcScrollTrack._height;
- _loc1_.c_mcSourceClip._mcScrollThumb._x = 1;
- var _loc2_ = (_loc1_._nScrollPosition - _loc1_._nMin) / (_loc1_._nMax - _loc1_._nMin) * (_loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height);
- if(_loc2_ > _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height)
- {
- _loc2_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
- }
- else if(_loc2_ < _loc1_.c_mcSourceClip._mcScrollTrack._y)
- {
- _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
- }
- _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
- _loc1_.c_mcSourceClip._mcScrollThumb.objRef = _loc1_;
- _loc1_.c_mcSourceClip._mcScrollUp.objRef = _loc1_;
- _loc1_.c_mcSourceClip._mcScrollDown.objRef = _loc1_;
- _loc1_.c_mcSourceClip._mcScrollThumb.onPress = function()
- {
- var _loc1_ = this;
- var _loc2_ = _loc1_.objRef.c_mcSourceClip._mcScrollThumb._ymouse;
- _loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc2_);
- };
- _loc1_.c_mcSourceClip._mcScrollThumb.onRelease = function()
- {
- clearInterval(this._nInterval);
- };
- _loc1_.c_mcSourceClip._mcScrollThumb.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollThumb.onRelease;
- _loc1_.c_mcSourceClip._mcScrollUp.onPress = function()
- {
- var _loc1_ = this;
- _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,50,-1,_loc1_.objRef);
- };
- _loc1_.c_mcSourceClip._mcScrollUp.onRelease = function()
- {
- clearInterval(this._nInterval);
- };
- _loc1_.c_mcSourceClip._mcScrollUp.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollUp.onRelease;
- _loc1_.c_mcSourceClip._mcScrollDown.onPress = function()
- {
- var _loc1_ = this;
- _loc1_._nInterval = setInterval(_loc1_.objRef.nudge,50,1,_loc1_.objRef);
- };
- _loc1_.c_mcSourceClip._mcScrollDown.onRelease = function()
- {
- clearInterval(this._nInterval);
- };
- _loc1_.c_mcSourceClip._mcScrollDown.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollDown.onRelease;
- }
- function set min(nMin)
- {
- this._nMin = nMin;
- }
- function get min()
- {
- return this._nMin;
- }
- function set max(nMax)
- {
- this._nMax = nMax;
- }
- function get max()
- {
- return this._nMax;
- }
- function set scrollPosition(nScrollPosition)
- {
- var _loc1_ = this;
- _loc1_._nScrollPosition = nScrollPosition;
- _loc1_.arrange();
- }
- function get scrollPosition()
- {
- var _loc1_ = this;
- var _loc2_ = (_loc1_._mcScrollThumb._y - _loc1_._mcScrollTrack._y) / (_loc1_._mcScrollTrack._height - _loc1_._mcScrollThumb._height) * (_loc1_._nMax - _loc1_._nMin) + _loc1_._nMin;
- return Math.round(_loc2_);
- }
- function set height(nHeight)
- {
- this.setSize(null,nHeight);
- trace(nHeight);
- }
- function get height()
- {
- return this.__height;
- }
- function setSize(nW, nH)
- {
- var _loc1_ = this;
- _loc1_._xscale = 100;
- _loc1_._yscale = 100;
- _loc1_.__width = nW;
- _loc1_.__height = nH;
- _loc1_.arrange();
- }
- function scroll(_objRef, _iOffset)
- {
- var _loc1_ = _objRef;
- var _loc2_ = _loc1_.c_mcSourceClip._ymouse - _iOffset;
- var _loc3_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
- var nLower = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
- var nattLower = _loc1_.c_mcSourceClip._y - _loc1_.c_mcTargetClip._height + _loc1_.c_mcSourceClip._height;
- if(_loc1_.c_mcTargetClip._height > _loc1_.c_mcSourceClip._height)
- {
- if(_loc2_ > _loc3_ && _loc2_ < nLower)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc1_.c_mcSourceClip._ymouse - _iOffset;
- var scrollcoverdist = _loc1_.c_mcSourceClip._mcScrollThumb._y * (100 / _loc1_.c_mcSourceClip._mcScrollTrack._height);
- var scrollMCdist = (_loc1_.c_mcTargetClip._height - _loc1_.c_mcSourceClip._height) * (scrollcoverdist / 100);
- var temp = _loc1_.c_iYpos - scrollMCdist;
- _loc1_.c_mcTargetClip._y = temp;
- }
- else if(_loc2_ < _loc3_)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc3_;
- _loc1_.c_mcTargetClip._y = _loc1_.c_iYpos;
- }
- else if(_loc2_ > nLower)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y = nLower;
- _loc1_.c_mcTargetClip._y = nattLower;
- }
- }
- this.dispatchScrollEvent();
- updateAfterEvent();
- }
- function nudge(nIncrement, _objRef)
- {
- var _loc1_ = _objRef;
- var _loc2_ = _loc1_.c_mcSourceClip._mcScrollTrack._y;
- var _loc3_ = _loc1_.c_mcSourceClip._mcScrollDown._y - _loc1_.c_mcSourceClip._mcScrollThumb._height;
- var nattLower = _loc1_.c_mcSourceClip._y - _loc1_.c_mcTargetClip._height + _loc1_.c_mcSourceClip._height;
- var dist = _loc1_.c_mcTargetClip._height / _loc1_.c_mcSourceClip._height;
- var scrollheight = _loc1_.c_mcSourceClip._mcScrollTrack._height / Math.floor(dist);
- var movieheight = _loc1_.c_mcTargetClip._height / Math.ceil(dist);
- if(scrollheight <= _loc1_.c_mcSourceClip._mcScrollTrack._height)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y += nIncrement;
- _loc1_.c_mcTargetClip._y -= nIncrement;
- }
- if(_loc1_.c_mcSourceClip._mcScrollThumb._y < _loc2_)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc2_;
- _loc1_.c_mcTargetClip._y = _loc1_.c_iYpos;
- }
- else if(_loc1_.c_mcSourceClip._mcScrollThumb._y > _loc3_)
- {
- _loc1_.c_mcSourceClip._mcScrollThumb._y = _loc3_;
- _loc1_.c_mcTargetClip._y = nattLower;
- }
- this.dispatchScrollEvent();
- updateAfterEvent();
- }
- function dispatchScrollEvent()
- {
- var _loc1_ = this;
- if(_loc1_._mcScrollThumb._y != _loc1_._nPrevScroll)
- {
- _loc1_.dispatchEvent({type:"scroll",target:_loc1_});
- _loc1_._nPrevScroll = _loc1_._mcScrollThumb._y;
- }
- }
- }
-