Flash AS2 Auto Scroller - PullRequest
       19

Flash AS2 Auto Scroller

0 голосов
/ 04 мая 2011

У меня есть этот код в 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;
    };
};

1 Ответ

0 голосов
/ 23 мая 2011

попробуйте временно изменить функцию 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
}
};
...