1

我已经搜索了整个网络,但我无法解决问题。

(adobe flash pro cs6)我在舞台上放了一个简单的滚动窗格,并从库(导出为actionscript)中设置了一个movieclip“页面”作为.source。

“页面”电影剪辑有一些关键帧,每个关键帧代表一个页面。好吧,这些页面的高度不同,当我切换页面时,滚动窗格不会注意到嵌套影片剪辑的高度变化,因此它保持在第一个关键帧的滚动条高度上。

我试过 .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();
    }
}
4

1 回答 1

1

试试(假设viewport是你的 ScrollPane)viewport.update()

我不知道您在网络上的哪个位置尝试过,但 Adob​​e 文档实际上在这方面做得很好。从条目中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

于 2012-10-16T12:03:26.790 回答