AS3 - ScrollPane动态滚动高度问题

时间:2012-10-16 11:59:18

标签: actionscript-3 flash dynamic scroll scrollpane

我在网上搜索过,但我无法解决问题。

(adobe flash pro cs6) 我在舞台上放了一个简单的滚动条,并从libary(actionsfor actions的导出)中设置了一个movieclip“pages”作为.source。

“pages”movieclip有一些关键帧,每个关键帧代表一个页面。好吧,这些页面的高度不同,当我切换页面时,滚动窗格没有注意到嵌套动画片段的高度变化,所以它保持在第一个关键帧的滚动条高度。

我试过.invalidate()和.refreshPane(),但它们都适合我。

这是我的代码:

主要时间表:

viewport.source = pages;
viewport.setSize( 990, 480 );
var pages_mc:MovieClip = viewport.content as MovieClip;

菜单时间表

btn_a.buttonMode = true;
btn_a.addEventListener( MouseEvent.CLICK, btnClick );
btn_b.buttonMode = true;
btn_b.addEventListener( MouseEvent.CLICK, btnClick );

function btnClick( e:MouseEvent ):void {
    if( e.target.name == "btn_a" ) {
        MovieClip(root).pages_mc.gotoAndStop("pa");
        MovieClip(root).viewport.invalidate();
} else if( e.target.name == "btn_b" ) {
        MovieClip(root).pages_mc.gotoAndStop("pb");
        MovieClip(root).viewport.invalidate();
    }
}

1 个答案:

答案 0 :(得分:1)

尝试(假设viewport是您的ScrollPane)viewport.update()

我不知道你在网上尝试了什么,但Adobe文档实际上相当不错。来自refreshPane()的条目:

  

此方法不会重绘滚动条。要重置滚动条,   使用update()方法。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/containers/ScrollPane.html#update%28%29

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/containers/ScrollPane.html#refreshPane%28%29