Flex CategoryAxis 字體樣式修改
更新時(shí)間:2009年07月13日 00:19:53 作者:
Flex編程注意之修改CategoryAxis的字體樣式(大小、顏色、粗斜體等)
在群里面有朋友問我,如何可以修改Flex Charts其中一個(gè)可視化標(biāo)簽:CategoryAxis的字體大小、顏色等方式。
CategoryAxis的定義:
CategoryAxis類允許圖表表示由軸上的一組離散值組成的數(shù)據(jù)。通??梢允褂肅ategoryAxis類定義一組沿圖表的軸顯示的標(biāo)簽。例如,按城市、年份、業(yè)務(wù)部門等呈現(xiàn)數(shù)據(jù)的圖表。
CategoryAxis的繼承關(guān)系:
CategoryAxis → AxisBase → EventDispatcher → Object
從上述關(guān)系可以看出CategoryAxis沒有繼承UIComponent、DisplayObject等可視化容器,同時(shí)CategoryAxis也沒有一些關(guān)于文字設(shè)定方面的屬性,例如fontsize、fontWeight、textDecoration等。
不過我們可以利用其他的方式來實(shí)現(xiàn)這個(gè)功能。
CategoryAxis有一個(gè)叫做labelFunction的屬性,這個(gè)屬性的定義:指定一個(gè)函數(shù),用于定義為CategoryAxis的dataProvider中的各個(gè)項(xiàng)目生成的標(biāo)簽。
所以修改的原理:可以利用labelFunction得到每個(gè)Label,然后再對其進(jìn)行修改。
片段代碼:
<mx:horizontalAxis>
<mx:CategoryAxis id="ca"
categoryField="@date" title="August 2007" labelFunction="categoryAxisLabelFun" />
</mx:horizontalAxis>
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return temp;
}
其中categoryAxisLabelFun的參數(shù):
1、item:保存的就是Label里面文字信息。
2、prevValue:坐標(biāo)軸上面,前一個(gè)類別的值。
3、axis:CategoryAxis的實(shí)例化對象。
4、categoryItem:是將要呈現(xiàn)的dataProvider中的項(xiàng)目。
所以與標(biāo)簽有關(guān)系的只有第一個(gè)參數(shù):item。
以下代碼分別是對CategoryAxis的標(biāo)簽進(jìn)行修改的代碼:
1、改變字體大?。?
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<font size="20">' + temp + </font>';
}
2、改變字體粗細(xì):
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<B>' + temp + </B>';
}
3、改變字體下劃線:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<U>' + temp + </U>';
}
4、改變字體斜體:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<I>' + temp + </I>';
}
5、改變字體顏色:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<font color="#ff0000">' + temp + </font>';
}
綜上所述,其實(shí)我們利用了一個(gè)很簡單的方式,使用HTML標(biāo)簽對其Label進(jìn)行設(shè)置。
CategoryAxis的定義:
CategoryAxis類允許圖表表示由軸上的一組離散值組成的數(shù)據(jù)。通??梢允褂肅ategoryAxis類定義一組沿圖表的軸顯示的標(biāo)簽。例如,按城市、年份、業(yè)務(wù)部門等呈現(xiàn)數(shù)據(jù)的圖表。
CategoryAxis的繼承關(guān)系:
CategoryAxis → AxisBase → EventDispatcher → Object
從上述關(guān)系可以看出CategoryAxis沒有繼承UIComponent、DisplayObject等可視化容器,同時(shí)CategoryAxis也沒有一些關(guān)于文字設(shè)定方面的屬性,例如fontsize、fontWeight、textDecoration等。
不過我們可以利用其他的方式來實(shí)現(xiàn)這個(gè)功能。
CategoryAxis有一個(gè)叫做labelFunction的屬性,這個(gè)屬性的定義:指定一個(gè)函數(shù),用于定義為CategoryAxis的dataProvider中的各個(gè)項(xiàng)目生成的標(biāo)簽。
所以修改的原理:可以利用labelFunction得到每個(gè)Label,然后再對其進(jìn)行修改。
片段代碼:
<mx:horizontalAxis>
<mx:CategoryAxis id="ca"
categoryField="@date" title="August 2007" labelFunction="categoryAxisLabelFun" />
</mx:horizontalAxis>
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return temp;
}
其中categoryAxisLabelFun的參數(shù):
1、item:保存的就是Label里面文字信息。
2、prevValue:坐標(biāo)軸上面,前一個(gè)類別的值。
3、axis:CategoryAxis的實(shí)例化對象。
4、categoryItem:是將要呈現(xiàn)的dataProvider中的項(xiàng)目。
所以與標(biāo)簽有關(guān)系的只有第一個(gè)參數(shù):item。
以下代碼分別是對CategoryAxis的標(biāo)簽進(jìn)行修改的代碼:
1、改變字體大?。?
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<font size="20">' + temp + </font>';
}
2、改變字體粗細(xì):
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<B>' + temp + </B>';
}
3、改變字體下劃線:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<U>' + temp + </U>';
}
4、改變字體斜體:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<I>' + temp + </I>';
}
5、改變字體顏色:
private function categoryAxisLabelFun( item : Object, prevValue : Object, axis : CategoryAxis, categoryItem : Object) : String {
var temp : String = item as String;
return '<font color="#ff0000">' + temp + </font>';
}
綜上所述,其實(shí)我們利用了一個(gè)很簡單的方式,使用HTML標(biāo)簽對其Label進(jìn)行設(shè)置。
相關(guān)文章
基于Socket的網(wǎng)絡(luò)連接 Flex與.NET互操作(一)
Flash/Flex也支持基于Socket的網(wǎng)絡(luò)連接 ,服務(wù)器端可以是C++,VB,C#,Java等任一語言開發(fā)。監(jiān)聽一個(gè)網(wǎng)絡(luò)端口便可以接收到Flash/Flex開發(fā)的客戶端的連接。2009-06-06Flex和.NET協(xié)同開發(fā)利器FluorineFx Flex與.NET互操作
在本系列前面幾篇文章中分別介紹了通過WebService、HTTPService、URLLoader以及FielReference等組件或類來完成Flex與.NET服務(wù)端的通信的相關(guān)知識點(diǎn)。2009-06-06如何定義一個(gè)getter和seter設(shè)置的屬性可以被綁定
Define private variable for maxFontSize.2009-05-05Flex 全屏組件 部分全屏的實(shí)現(xiàn)代碼
一般情況下,F(xiàn)lex全屏是指將整個(gè)舞臺全屏,而不是待定的組件全屏.網(wǎng)上的例子也一般是指這種情況的.2009-09-09讓Flex Builder 3.0與Eclipse3.4整合起來
Flex Builder 3.0 For Eclipse 3.3 安裝方法2009-02-02