修改Flex chart中Legend的字体样式
2014-03-13 09:41
495 查看
FLEX的图表(CHART)中的Legend 的字体通过直接设置Style 并没有办法改变字体大小.
通过查资料发现了这个方法: 通过派生LegendItem类,并设置Legend的ItemClass属性来实现。
LegendItem 是Lengend 的元素, 就是里面一个一个的图示. 通过派生这个类, 就可以修改其相应的样式.
派生LegendItem 类, 并设置样式.
BigFontLegendIte.as
// ActionScript file
package com
{
import mx.charts.LegendItem;
public class BigFontLegendItem extends LegendItem
{
public function BigFontLegendItem()
{
super();
this.styleName = "ChineseFont";
}
}
}
2.在<s:Application>中添加样式:
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
.ChineseFont{
fontFamily:"微软雅黑";
fontSize:12;
fontWeight:normal;
}
</fx:Style>
3. 在相应的Legend中指定legendItemClass="com.BigFontLegendItem"
<mx:Legend dataProvider="{linechart1}" direction="horizontal" legendItemClass="com.BigFontLegendItem"/>
<?xml version="1.0"?>
<!-- Simple example to demonstrate the LineChart and AreaChart controls. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init()" >
<fx:Script>
<![CDATA[
import mx.charts.series.LineSeries;
import mx.collections.ArrayCollection;
import mx.utils.ColorUtil;
private var colorutil:ColorUtil ;
[Bindable]
private var expensesAC:ArrayCollection = new ArrayCollection( [
{ Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 },
{ Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 },
{ Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 },
{ Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 },
{ Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]);
private function init():void
{
var array:Array = new Array();
for(var i:int =0;i<3;i++)
{
var line:LineSeries = new LineSeries();
line.setStyle("lineStroke",new SolidColorStroke(new uint("0xf00000"),4));
line.yField="Profit";
line.displayName="Profit";
array.push(line);
var c:ColorUtil = null;
}
linechart.series = array;
linechart.dataProvider = expensesAC;
linechart.showDataTips=true;
}
]]>
</fx:Script>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
.abc{
fontFamily:"微软雅黑";
fontSize:12;
fontWeight:normal;
color:green;
}
</fx:Style>
<fx:Declarations>
<!-- Define custom Strokes. -->
<mx:SolidColorStroke id = "s1" color="blue" weight="1" scaleMode="vertical" pixelHinting="false"/>
<mx:SolidColorStroke id = "s2" color="red" weight="2"/>
<mx:SolidColorStroke id = "s3" color="green" weight="2"/>
</fx:Declarations>
<mx:Panel title="LineChart and AreaChart Controls Example"
height="100%" width="100%" layout="horizontal">
<mx:LineChart id="linechart" height="100%" width="45%"
paddingLeft="5" paddingRight="5"
showDataTips="true" dataProvider="{expensesAC}">
<!--
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Month"/>
</mx:horizontalAxis>-->
<mx:series>
<mx:LineSeries yField="Profit" displayName="Profit" lineStroke="{s1}"/>
<mx:LineSeries yField="Expenses" displayName="Expenses" lineStroke="{s2}"/>
<mx:LineSeries yField="Amount" displayName="Amount" lineStroke="{s3}"/>
</mx:series>
</mx:LineChart>
<mx:Legend dataProvider="{linechart}" legendItemClass="LegendItemImpl"/>
</mx:Panel>
</s:Application>
package
{
import mx.charts.LegendItem;
public class LegendItemImpl extends LegendItem
{
public function LegendItemImpl()
{
super();
this.styleName= "abc";
}
}
}
通过查资料发现了这个方法: 通过派生LegendItem类,并设置Legend的ItemClass属性来实现。
LegendItem 是Lengend 的元素, 就是里面一个一个的图示. 通过派生这个类, 就可以修改其相应的样式.
派生LegendItem 类, 并设置样式.
BigFontLegendIte.as
// ActionScript file
package com
{
import mx.charts.LegendItem;
public class BigFontLegendItem extends LegendItem
{
public function BigFontLegendItem()
{
super();
this.styleName = "ChineseFont";
}
}
}
2.在<s:Application>中添加样式:
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
.ChineseFont{
fontFamily:"微软雅黑";
fontSize:12;
fontWeight:normal;
}
</fx:Style>
3. 在相应的Legend中指定legendItemClass="com.BigFontLegendItem"
<mx:Legend dataProvider="{linechart1}" direction="horizontal" legendItemClass="com.BigFontLegendItem"/>
<?xml version="1.0"?>
<!-- Simple example to demonstrate the LineChart and AreaChart controls. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init()" >
<fx:Script>
<![CDATA[
import mx.charts.series.LineSeries;
import mx.collections.ArrayCollection;
import mx.utils.ColorUtil;
private var colorutil:ColorUtil ;
[Bindable]
private var expensesAC:ArrayCollection = new ArrayCollection( [
{ Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 },
{ Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 },
{ Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 },
{ Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 },
{ Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]);
private function init():void
{
var array:Array = new Array();
for(var i:int =0;i<3;i++)
{
var line:LineSeries = new LineSeries();
line.setStyle("lineStroke",new SolidColorStroke(new uint("0xf00000"),4));
line.yField="Profit";
line.displayName="Profit";
array.push(line);
var c:ColorUtil = null;
}
linechart.series = array;
linechart.dataProvider = expensesAC;
linechart.showDataTips=true;
}
]]>
</fx:Script>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
.abc{
fontFamily:"微软雅黑";
fontSize:12;
fontWeight:normal;
color:green;
}
</fx:Style>
<fx:Declarations>
<!-- Define custom Strokes. -->
<mx:SolidColorStroke id = "s1" color="blue" weight="1" scaleMode="vertical" pixelHinting="false"/>
<mx:SolidColorStroke id = "s2" color="red" weight="2"/>
<mx:SolidColorStroke id = "s3" color="green" weight="2"/>
</fx:Declarations>
<mx:Panel title="LineChart and AreaChart Controls Example"
height="100%" width="100%" layout="horizontal">
<mx:LineChart id="linechart" height="100%" width="45%"
paddingLeft="5" paddingRight="5"
showDataTips="true" dataProvider="{expensesAC}">
<!--
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Month"/>
</mx:horizontalAxis>-->
<mx:series>
<mx:LineSeries yField="Profit" displayName="Profit" lineStroke="{s1}"/>
<mx:LineSeries yField="Expenses" displayName="Expenses" lineStroke="{s2}"/>
<mx:LineSeries yField="Amount" displayName="Amount" lineStroke="{s3}"/>
</mx:series>
</mx:LineChart>
<mx:Legend dataProvider="{linechart}" legendItemClass="LegendItemImpl"/>
</mx:Panel>
</s:Application>
package
{
import mx.charts.LegendItem;
public class LegendItemImpl extends LegendItem
{
public function LegendItemImpl()
{
super();
this.styleName= "abc";
}
}
}
相关文章推荐
- 修改flex chart中Legend的字体样式
- 修改flex chart中Legend的字体样式
- 修改flex chart中Legend的字体样式
- 修改flex chart中Legend的字体
- flex 折线图 line chart 图表 Legend 修改字体大小 AxisRenderer 坐标轴
- [转]flex linechart 修改DataTips样式
- Flex chart设置Legend样式
- 修改flex验证提示,以及一般提示的字体样式
- Flex CategoryAxis 字体样式修改
- Flex编程注意之修改CategoryAxis的字体样式(大小、颜色、粗斜体等)
- Flex chart设置Legend样式
- [Flex]Flex编程注意之修改CategoryAxis的字体样式(大小、颜色、粗斜体等)
- [Flex]Flex编程注意之修改CategoryAxis的字体样式(大小、颜色、粗斜体等)
- IntelliJ IDEA设置修改字体大小与样式
- v7 AlertDialog修改样式(背景颜色字体动画)
- Flex中如何通过设置fontFamily样式在NumericStepper控件中使用嵌入字体的例子
- Flex更改Alert提示框的字体大小和样式
- Flex鼠标样式修改
- Flex SuperTabNavigator中SuperTab关闭按钮样式修改
- Flex LineChart三部曲-样式篇