我已经创建了一个水平滚动条,现在我不知道如何在滚动条处于某个位置时计算内容的位置。
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的右上角),拖动它将使内容向左移动更多。
答案 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缓动效果