滚动条 - 按钮在达到最大/最小时抖动

时间:2011-09-08 12:19:35

标签: actionscript-3 scroll position scrollbar

我正在构建一个滚动条。

在MouseDown上我启动一个重复计时器来定位Scrollbar-Button(Slider)。 当它达到最小值/最大值时它会抖动(在最小值/最大值和stage.mouseY之间切换...) 我怎么能防止这种情况?

private function onTime(e:TimerEvent):void
    {

        if(this._scrollBtn.y < min)
        {
            this._scrollBtn.y = min;
        }
        else if(this._scrollBtn.y > max-this._scrollBtn.height)
        {
            this._scrollBtn.y = max-this._scrollBtn.height;
        }
        else
        {
            this._scrollBtn.y = stage.mouseY;
        }
    }

1 个答案:

答案 0 :(得分:0)

我建议您先监听MouseEvent.MOUSE_MOVE而不是使用计时器,这样只有在鼠标移动时才能正常工作。

您的问题很可能是您在“移动”之后验证滚动句柄的位置,让它在下一次更新到来之前暂时超出界限并将其移回。

除非明确需要,否则没有理由在任何地方都有this

private function onTime(e:TimerEvent):void
{
    _scrollBtn.y = stage.mouseY;

    if(_scrollBtn.y < min)
    {
        _scrollBtn.y = min;
    }
    else if(_scrollBtn.y > max - _scrollBtn.height)
    {
        _scrollBtn.y = max - _scrollBtn.height;
    }
}