AS3滚动条内容公式

时间:2009-11-06 10:43:39

标签: actionscript-3 scroll

我已经创建了一个水平滚动条,现在我不知道如何在滚动条处于某个位置时计算内容的位置。

private function checkDrag(event:Event):void {
        var procent:Number = (stage.stageWidth/(buttonLR.x+buttonLR.width))*(LISTmc.width)
        if (drag) {
            TweenLite.to(LISTmc,1,{x:-procent});
        }

//buttonLR width is also stretched according to how many data loads in,
thats why I'm trying to target the center of buttonLR
    }

每次单击按钮时,都会从左到右添加新内容,因此滚动条将从左向右滚动到条形图的右端,并显示最新内容。因此,如果我想回到之前的内容,我必须将滚动条拖到左侧。

目前我的代码在我加载新内容后点击滚动条,内容将移动到舞台左侧的末尾(内容x = 0的右上角),拖动它将使内容向左移动更多。

2 个答案:

答案 0 :(得分:3)

要正确执行此操作,您需要找到屏幕外的宽度(extraWidth),然后相应地计算位置。当你计算按钮的放置百分比时,我还会从stageWidth中减去按钮的宽度:

   private function checkDrag(event:Event):void {
      if (LISTmc.width < stage.stageWidth) {
        return;
      }
      var extraWidth:Number = LISTmc.width - stage.stageWidth;
      var percentage:Number = buttonLR.x / (stage.stageWidth - buttonLR.width )
      var newXPos:Number = - extraWidth * percentage;
      if (drag) {
        TweenLite.to(LISTmc,1,{x:newXPos});
      }
    }

希望它可以帮到你

答案 1 :(得分:0)

这也是一个很棒的OOP滚动条,你也可以使用它,它还支持模糊,轻松等... 也使用Greensock缓动效果

AS3 Scrollbar (ease, blur, abstract, OOP)