Flex的tree自动显示横向滚动条的方法


Flex #tree #滚动条2014-04-10 10:12

上代码。

package com.anydata.consumer.components {
    import flash.events.Event;
    import mx.controls.Tree;
    import mx.core.ScrollPolicy;
    import mx.core.mx_internal;

    /** 
* 自动显示横向滚动条 
*/
    public class AutoSizeTree extends Tree {
        public
        function AutoSizeTree() {
            super();
            horizontalScrollPolicy = ScrollPolicy.AUTO;
        }

        override public
        function get maxHorizontalScrollPosition() : Number {
            if (isNaN(mx_internal: :_maxHorizontalScrollPosition)) return 0;
            return mx_internal: :_maxHorizontalScrollPosition;
        }

        override public
        function set maxHorizontalScrollPosition(value: Number) : void {
            mx_internal: :_maxHorizontalScrollPosition = value;
            dispatchEvent(new Event("maxHorizontalScrollPositionChanged"));
            scrollAreaChanged = true;
            invalidateDisplayList();
        }

        override protected
        function updateDisplayList(unscaledWidth: Number, unscaledHeight: Number) : void {
            var diffWidth: Number = measureWidthOfItems(0, 0) - (unscaledWidth - viewMetrics.left - viewMetrics.right);

            var indentation: Number = getStyle("indentation");

            if (diffWidth <= 0) maxHorizontalScrollPosition = NaN;
            else maxHorizontalScrollPosition = diffWidth + indentation;
            super.updateDisplayList(unscaledWidth, unscaledHeight);
        }
    }
}


相关文章

粤ICP备11097351号-1