組み込みのスクロールバー コンポーネントをフラッシュでカスタマイズしようとしています。具体的には、スクロールバーのつまみをカスタマイズして、高さと幅を固定する必要があります。
これは私が今持っているものです。親指の高さは自動的に調整されます。親指の高さを修正する必要があります。
私が達成しようとしていること(固定高さの親指):
Flash で親指のサイズを設定する方法についての指針をいただければ幸いです。
組み込みのスクロールバー コンポーネントをフラッシュでカスタマイズしようとしています。具体的には、スクロールバーのつまみをカスタマイズして、高さと幅を固定する必要があります。
これは私が今持っているものです。親指の高さは自動的に調整されます。親指の高さを修正する必要があります。
私が達成しようとしていること(固定高さの親指):
Flash で親指のサイズを設定する方法についての指針をいただければ幸いです。
これを行う簡単な方法はありません。つまり、Flash CS6 ScrollBar はこの機能をサポートしていません。保護されたメソッドで更新されるつまみの高さfl.controls.ScrollBar
:
protected function updateThumb():void {
var per:Number = _maxScrollPosition - _minScrollPosition + _pageSize;
if (track.height <= 12 || _maxScrollPosition <= _minScrollPosition || (per == 0 || isNaN(per))) {
thumb.height = 12;
thumb.visible = false;
} else {
thumb.height = Math.max(13,_pageSize / per * track.height);
thumb.y = track.y+(track.height-thumb.height)*((_scrollPosition-_minScrollPosition)/(_maxScrollPosition-_minScrollPosition));
thumb.visible = enabled;
}
}
ご覧のとおりthumb.height
、else ブロックの設定をスキップするフラグはありません。考えられる解決策はScrollPane
、メソッドを拡張してオーバーライドし、 created の代わりにconfigUI
カスタム CustomScrollPane (ScrollBar を拡張してメソッドをオーバーライドする) を追加することです。updateThumb
_verticalScrollBar:ScrollBar
別の解決策として、元の fl ScrollPane クラスを、swf のメイン ApplicationDomain で同じ名前の fl.controls.ScrollPane を持つ独自のクラスに置き換えることができます。ただし、これを行うには、独自のクラスが fl の前にロードされるようにクラスのロードを整理する必要があります。つまり、すべてのクラスを外部の swfs で動的にロードする必要があります。