Actionscript 3 达到最大/最小值时滚动条按钮会抖动

Actionscript 3 达到最大/最小值时滚动条按钮会抖动,actionscript-3,scroll,position,scrollbar,Actionscript 3,Scroll,Position,Scrollbar,我正在创建一个滚动条 鼠标向下时,我启动一个重复计时器来定位滚动条按钮(滑块)。 当达到最小/最大值时,它会抖动(在最小/最大值和stage.mouseY之间切换…) 我怎样才能防止呢 private function onTime(e:TimerEvent):void { if(this._scrollBtn.y < min) { this._scrollBtn.y = min; } els

我正在创建一个滚动条

鼠标向下时,我启动一个重复计时器来定位滚动条按钮(滑块)。 当达到最小/最大值时,它会抖动(在最小/最大值和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;
        }
    }
实时私有函数(e:TimerEvent):无效
{
如果(此滚动条长度<最小值)
{
这个。_scrollBtn.y=min;
}
else if(this.\u scrollBtn.y>最大this.\u scrollBtn.height)
{
这个。_scrollBtn.y=最大这个。_scrollBtn.height;
}
其他的
{
这个。_scrollBtn.y=stage.mouseY;
}
}

我建议您不要使用计时器,而是收听
MouseEvent.MOUSE\u MOVE
,这样您只有在鼠标移动时才能进行工作

您的问题可能是您在“移动”滚动手柄之后验证了它的位置,在下一次更新到来并将其移回之前让它在边界之外一段时间

也没有理由到处都有
这个
,除非明确需要它

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;
    }
}
实时私有函数(e:TimerEvent):无效
{
_scrollBtn.y=stage.mouseY;
如果(_scrollBtn.ymax-_scrollBtn.height)
{
_scrollBtn.y=最大-_scrollBtn.height;
}
}

谢谢,问题解决了!根据“this”:我用它来增加一个标记,以更快地识别类变量。。。您认为有什么缺点吗?我认为这样做不会提高运行速度,而且因为我假设_下划线表示它是一个私有变量,所以它实际上只意味着您需要更多的输入。但是,归根结底,这是一个品味的问题,所以做你觉得最好的!