私はウェブ全体を検索しましたが、問題を解決できません。
(adobe flash pro cs6) ステージにシンプルなスクロールペインを配置し、ライブラリ (actionscript のエクスポート) からムービークリップの「ページ」を .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();
}
}