home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FCE Gold Plus
/
GOLD.iso
/
pc
/
shell.swf
/
scripts
/
__Packages
/
com
/
comp
/
ScrollBar.as
< prev
next >
Wrap
Text File
|
2007-10-16
|
12KB
|
288 lines
class com.comp.ScrollBar extends MovieClip
{
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",700);
_loc1_.c_mcSourceClip = _loc1_.c_objRoot._mcBoundingBox;
_loc1_.c_iPoschanged = 0;
_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 setXY(_iXPos)
{
this.c_mcSourceClip._x = _iXPos;
}
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 = 0;
_loc1_.c_mcSourceClip._mcScrollThumb._width = _loc1_.c_mcSourceClip._width;
_loc1_.c_iDiffrence = _loc1_.c_mcTargetClip._height / _loc1_.c_mcSourceClip._mcScrollTrack._height;
var _loc3_ = _loc1_.c_mcSourceClip._mcScrollThumb._height;
if(_loc1_.c_mcTargetClip._height > _loc1_.c_mcSourceClip._height - _loc1_.c_iPoschanged)
{
_loc1_.c_mcSourceClip._mcScrollThumb._height = _loc1_.c_mcSourceClip._height * _loc1_.c_mcSourceClip._height / _loc1_.c_mcTargetClip._height;
if(_loc1_.c_mcSourceClip._mcScrollThumb._height > _loc1_.c_mcSourceClip._mcScrollTrack._height)
{
_loc1_.c_mcSourceClip._mcScrollThumb._height = _loc1_.c_mcSourceClip._mcScrollTrack._height;
}
else if(_loc1_.c_mcSourceClip._mcScrollThumb._height < _loc3_)
{
_loc1_.c_mcSourceClip._mcScrollThumb._height = _loc3_;
}
}
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_.init_thumb_y = _loc1_.c_mcSourceClip._mcScrollThumb._y;
_loc1_.setEvents();
}
function setEvents()
{
var _loc1_ = this;
_loc1_.c_mcSourceClip._mcScrollThumb.objRef = _loc1_;
_loc1_.c_mcSourceClip._mcScrollTrack.objRef = _loc1_;
_loc1_.c_mcSourceClip._mcScrollUp.objRef = _loc1_;
_loc1_.c_mcSourceClip._mcScrollDown.objRef = _loc1_;
_loc1_.c_mcSourceClip._mcScrollThumb.useHandCursor = false;
_loc1_.c_mcSourceClip._mcScrollTrack.useHandCursor = false;
_loc1_.c_mcSourceClip._mcScrollUp.useHandCursor = false;
_loc1_.c_mcSourceClip._mcScrollDown.useHandCursor = false;
var this_ref = _loc1_;
_loc1_.c_mcSourceClip._mcScrollThumb.onPress = function()
{
var _loc1_ = this;
_loc1_.startDrag(false,_loc1_._x,_loc1_._parent._mcScrollTrack._y + 1,_loc1_._x,Math.abs(_loc1_._parent._mcScrollDown._y - _loc1_._height) + 0.5);
var _loc2_ = _loc1_.objRef.c_mcSourceClip._mcScrollThumb._ymouse;
_loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc2_,1);
};
_loc1_.c_mcSourceClip._mcScrollThumb.onRelease = function()
{
var _loc1_ = this;
_loc1_.stopDrag();
delete _loc1_.objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
clearInterval(_loc1_._nInterval);
};
_loc1_.c_mcSourceClip._mcScrollThumb.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollThumb.onRelease;
_loc1_.c_mcSourceClip._mcScrollTrack.onPress = function()
{
var _loc1_ = this;
if(_loc1_.objRef.c_mcSourceClip._ymouse + _loc1_.objRef.c_mcSourceClip._mcScrollDown._height > _loc1_._y + _loc1_._height - _loc1_.objRef.c_mcSourceClip._mcScrollThumb._height)
{
_loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = _loc1_.objRef.c_mcSourceClip._ymouse - _loc1_.objRef.c_mcSourceClip._mcScrollThumb._height;
if(this_ref.init_thumb_y > _loc1_.objRef.c_mcSourceClip._mcScrollThumb._y)
{
_loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = this_ref.init_thumb_y;
}
}
else
{
_loc1_.objRef.c_mcSourceClip._mcScrollThumb._y = _loc1_.objRef.c_mcSourceClip._ymouse;
}
_loc1_._nInterval = setInterval(_loc1_.objRef.scroll,10,_loc1_.objRef,_loc1_._nOffset,0);
};
_loc1_.c_mcSourceClip._mcScrollTrack.onRelease = function()
{
delete this.objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
clearInterval(this._nInterval);
};
_loc1_.c_mcSourceClip._mcScrollTrack.onReleaseOutside = _loc1_.c_mcSourceClip._mcScrollTrack.onRelease;
_loc1_.c_mcSourceClip._mcScrollUp.onPress = function()
{
var _loc1_ = this;
_loc1_._nInterval = setInterval(_loc1_.objRef.nudge,5,-4,_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,5,4,_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);
}
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, _iNo)
{
var _loc1_ = _objRef.c_mcSourceClip._mcScrollThumb._y - _iOffset;
var _loc2_ = _objRef.c_mcSourceClip._mcScrollTrack._y;
var _loc3_ = _objRef.c_mcSourceClip._mcScrollDown._y - _objRef.c_mcSourceClip._mcScrollThumb._height - 10;
var nattLower = _objRef.c_mcSourceClip._y - _objRef.c_mcTargetClip._height + _objRef.c_mcSourceClip._height;
if(_objRef.c_mcTargetClip._height > _objRef.c_mcSourceClip._height)
{
if(_loc1_ > _loc2_ && _loc1_ < _loc3_)
{
if(_iNo == 0)
{
var scrollcoverdist = _objRef.c_mcSourceClip._mcScrollThumb._y * (100 / _objRef.c_mcSourceClip._mcScrollTrack._height);
var scrollMCdist = (_objRef.c_mcTargetClip._height - _objRef.c_mcSourceClip._height) * (scrollcoverdist / 100);
var temp = _objRef.c_iYpos - scrollMCdist;
_objRef.c_mcTargetClip._y = - _objRef.c_mcSourceClip._mcScrollThumb._y * _objRef.c_iDiffrence;
}
else if(_iNo == 1)
{
_objRef.c_mcSourceClip._mcScrollThumb.onMouseMove = function()
{
var _loc2_ = _objRef.c_mcSourceClip._mcScrollThumb._y * (100 / _objRef.c_mcSourceClip._mcScrollTrack._height);
var _loc1_ = (_objRef.c_mcTargetClip._height - _objRef.c_mcSourceClip._height) * (_loc2_ / 100);
var temp = _objRef.c_iYpos - _loc1_;
_objRef.c_mcTargetClip._y = - this._y * _objRef.c_iDiffrence;
};
}
}
else if(_loc1_ < _loc2_)
{
delete _objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
_objRef.c_mcTargetClip._y = _objRef.c_iYpos;
}
else if(_loc1_ > _loc3_)
{
delete _objRef.c_mcSourceClip._mcScrollThumb.onMouseMove;
_objRef.c_mcTargetClip._y = nattLower - _objRef.c_iPoschanged;
}
}
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 * _loc1_.c_iDiffrence;
}
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 - _loc1_.c_iPoschanged;
}
updateAfterEvent();
}
function dispatchScrollEvent()
{
var _loc1_ = this;
if(_loc1_._mcScrollThumb._y != _loc1_._nPrevScroll)
{
_loc1_.dispatchEvent({type:"scroll",target:_loc1_});
_loc1_._nPrevScroll = _loc1_._mcScrollThumb._y;
}
}
function removeScrollBar(_objRef)
{
this.c_mcSourceClip.removeMovieClip();
}
function setY(_iYPos)
{
var _loc1_ = this;
_loc1_.c_mcSourceClip._y += _iYPos;
_loc1_.c_iPoschanged = _iYPos;
}
function setX(_iXPos)
{
this.c_mcSourceClip._x += _iXPos;
}
}