我在AS2中有这段代码:
滚动条的自动速度为:
var autoSpeed:Number = 2;
我希望它更慢,但是当我减少数字时,滚动面不会移动。
我该如何解决这个问题。
感谢。
function scrolling(){
var scrollHeight:Number = scrollTrack._height;
var contentHeight:Number = contentMain._height;
var scrollFaceHeight:Number = scrollFace._height;
var maskHeight:Number = maskedView._height;
var initPosition:Number = scrollFace._y=scrollTrack._y;
var initContentPos:Number = contentMain._y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
var left:Number = scrollTrack._x;
var top:Number = scrollTrack._y;
var right:Number = scrollTrack._x;
var bottom:Number = scrollTrack._height-scrollFaceHeight+scrollTrack._y;
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight); //
var autoSpeed:Number = 2;
var autoIsOn:Boolean = true;
this.onEnterFrame = function() {
if (contentMain._y-speed>finalContentPos) {
if (scrollFace._y>=bottom) {
scrollFace._y = bottom;
} else {
scrollFace._y += autoSpeed/moveVal;
}
contentMain._y -= autoSpeed;
} else {
scrollFace._y = bottom;
contentMain._y = finalContentPos;
delete this.onEnterFrame;
}
};
scrollFace.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onMouseMove = function() {
dy = Math.abs(initPosition-this._y);
contentMain._y = Math.round(dy*-1*moveVal+initContentPos);
delete this.onEnterFrame;
};
};
scrollFace.onMouseUp = function() {
stopDrag();
delete this.onMouseMove;
};
};
答案 0 :(得分:0)
尝试临时调整onEnterFrame函数。如果你减慢两次滚动调用之间的帧数,看起来你的值滚动得更慢。
this.onEnterFrame = function() {
var count:Number = 0; // create a counter
if (count > 5) // change 5 to value you want in order to slow down (higher value = slower scrolling)
{
if (contentMain._y-speed>finalContentPos) {
if (scrollFace._y>=bottom) {
scrollFace._y = bottom;
} else {
scrollFace._y += autoSpeed/moveVal;
}
contentMain._y -= autoSpeed;
} else {
scrollFace._y = bottom;
contentMain._y = finalContentPos;
delete this.onEnterFrame;
}
count = 0; // reset the counter
}
else
{
count++; // increment the counter
}
};