当前位置 博文首页 > flex tree自动显示横向滚动条实现代码

    flex tree自动显示横向滚动条实现代码

    作者:admin 时间:2021-08-31 19:00

    复制代码 代码如下:

    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);
    }
    }
    }
    jsjbwy