1

私はウェブ全体を検索しましたが、問題を解決できません。

(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();
    }
}
4

1 に答える 1

1

viewport試してください(あなたのScrollPaneであると仮定します) viewport.update()

あなたが Web のどこで試したかはわかりませんが、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

于 2012-10-16T12:03:26.790 に答える