BarChart - 垂直中心标签
问题描述:
这个任务看起来并不难,但是在过去的几个小时里它一直阻止我。我正在做一个堆积条形图,我希望标签在每个条形图段内水平和垂直居中。标签被设置为“内部”。这样,您可以通过设置label-align:middle来轻松地将标签居中放置,但似乎没有任何东西可以处理垂直方面。BarChart - 垂直中心标签
下一个方法是创建条形图的自定义组件,但是当我搞乱渲染函数时,这会变得非常混乱。我认为这只是修改这一行:v.labelY=v.y + barSeries.seriesRenderData.renderedYOffset - barSeries.seriesRenderData.renderedHalfWidth;
但它没有奏效。
反正,如果有人有任何想法如何做到这一点,将不胜感激。
附加的是条形图现在的样子。为了澄清,我希望这些标签(图片中的手册)能够垂直居中。
答
<mx:BarSeries
xField="s1"
yField="name"
displayName="Employees in shceme"
labelAlign="center"
labelPosition="inside"
styleName="labelStyle"
/>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
.labelStyle {
verticalAlign:middle;
}
</fx:Style>
Enjoy!!!
我有我使用的,现在,我宁可不使用一个非常肮脏的黑客。我设置了一个labelFunction并访问了BarSeries,然后更改了labelContainer的y值。我还没有找到任何高度或任何东西来使这个动态值,所以现在它是硬编码。 – mbseid 2011-03-15 21:26:28
'私有函数的labelFunction(元件:与ChartItem,系列:系列):字符串 \t \t { \t \t \t VAR数据:BarSeriesItem = BarSeriesItem(元件); \t \t \t \t \t \t var currentSeries:BarSeries = BarSeries(series); \t \t \t \t \t \t //这需要更新。没有绝对值可以在这里 \t \t \t currentSeries.labelContainer.y = 35; \t \t \t return“”+ data.item.label; \t \t} ' – mbseid 2011-03-15 21:27:26