【问题标题】:How do I show/hide datatips on a chart with a secondary series如何在具有辅助系列的图表上显示/隐藏数据提示
【发布时间】:2011-02-13 23:09:26
【问题描述】:

我有一个带有柱形图的折线图作为辅助系列。当我翻过这条线时,会出现数据提示。但是,如果我将鼠标移动到仍然在行上出现列的位置,则数据提示项会出现在行和列的位置。如何获取它,以便我只显示该行的数据提示而不显示该列?

<mx:AreaChart id="areachart" dataProvider="{data}" showDataTips="true" >
    <mx:series>

    <mx:AreaSeries id="areaSeries" xField="date" yField="volume" >
    </mx:AreaSeries>


    <mx:ColumnSeries id="secondSeries" xField="date" yField="name" >
    </mx:ColumnSeries>

    </mx:series>

</mx:AreaChart>

【问题讨论】:

    标签: apache-flex flex4


    【解决方案1】:

    或者,您可以将列的交互属性设置为 false:

       <mx:ColumnSeries id="secondSeries" xField="date" yField="name" interactive="false">
       </mx:ColumnSeries>
    

    这将阻止列响应鼠标输入。

    【讨论】:

    • 这也有效,真不敢相信我错过了那个属性!而且它更优雅......
    • 嘿,好难找,别对自己这么狠!
    【解决方案2】:

    子类 AreaChart 并重写 findDataPoints 方法以过滤掉您不想要的数据点:

    public class CustomAreaChart extends AreaChart
    {
        public override function findDataPoints(x:Number, y:Number):Array
        {
            var originalDPs : Array = super.findDataPoints(x, y);
            var filteredDPs : Array = [];
    
            for each (var hd : HitData in originalDPs)
            {
                if (hd.chartItem.element is AreaSeries)
                    filteredDPs.push(hd);
            }
    
            return filteredDPs;
        }
    }
    

    然后使用这个新类而不是 AreaChart。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多