加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 4 Chart Legend

发布时间:2020-12-15 01:01:44 所属栏目:百科 来源:网络整理
导读:设置Legend的字体大小 直接设置 Legend的fontSize是没有用的。 可以通过扩展LegendItem类,并设置Legend的ItemClass属性来实现。 package{ ???? import mx.charts.LegendItem; ???? public class BigFontLegendItem extends LegendItem{ ????????????? publi

设置Legend的字体大小

直接设置 Legend的fontSize是没有用的。

可以通过扩展LegendItem类,并设置Legend的ItemClass属性来实现。
package{
???? import mx.charts.LegendItem;
???? public class BigFontLegendItem extends LegendItem{
????????????? public function BigLegendItem(){
??????????????????? super();
??????????????????? this.styleName="ChineseFont";
????????????? }
???? }
}
//application中:
<mx:Style>
??? .ChineseFont{
??????? fontFamily:"Verdana","宋体";
??????? fontSize:12;
??? }
</mx:Style>
<mx:Legend legendItemClass="LinkLegendItem"/>

?

也可以通过派生这个类,就可以修改其相应的样式.

派生LegendItem 类,并设置样式.
BigFontLegendIte.as

view plaincopy to clipboardprint?
package com?????
{?????
import mx.charts.LegendItem;?????
public class BigFontLegendItem extends LegendItem?????
{?????
?? public function BigFontLegendItem()?????
?? {?????
??? super();?????
??? this.styleName = "<STRONG>ChineseFont</STRONG>";?????
?? }?????
???????
}?????
}???
package com??
{??
import mx.charts.LegendItem;??
public class BigFontLegendItem extends LegendItem??
{??
?? public function BigFontLegendItem()??
?? {??
??? super();??
??? this.styleName = "<STRONG>ChineseFont</STRONG>??
?
?
";??
?? }??
????
}??
}?

2. 然后定义样式,在 Legend 中直接指定legendItemClass 为? BigFontLegendIte

view plaincopy to clipboardprint?
<mx:Style>????
???? .<STRONG>ChineseFont</STRONG>????
????
????
{?????
??????? fontFamily:"Verdana","宋体";?????
??????? fontSize:12;?????
???? }?????
</mx:Style>????
????
<mx:Legend legendItemClass="com.BigFontLegendItem " />??
<mx:Style>?
???? .<STRONG>ChineseFont</STRONG>?
?
?
{??
??????? fontFamily:"Verdana","宋体";??
??????? fontSize:12;??
???? }??
</mx:Style>?
?
<mx:Legend legendItemClass="com.BigFontLegendItem " />?

这样就可以设置Legend 中的字体大小或者样式了.

?

?

?

在flex chart中使用带链接的Legend

?

从LegendItem类中派生出LinkLegendItem类,并做两件事:
1. 设置鼠标为手型。
在构造函数中调用?


?? this.buttonMode = true;
??? this.mouseChildren = false;

即可

2. 设置鼠标经过时,改变背景色。步骤:
a.在createChildren时添加一个背景画布(放最底层)
b.捕捉鼠标的over 和out事件,在鼠标经过时设置背景色可见,鼠标移出时,隐藏。

3. 设置Legend 的 legendItemClass="LinkLegendItem" 。 若需要捕捉legendItem的单击事件,设置ItemClick事件即可。

全部代码如下。

//LinkLegendItem
package
{
import flash.events.MouseEvent;
import flash.ui.Mouse;

import mx.charts.LegendItem;
import mx.containers.Canvas;

public class LinkLegendItem extends LegendItem
{
?? private var bgElement:Canvas;
???? private var _highlight:Boolean;
?? public function LinkLegendItem()
?? {
??? super();

?? //这两行设置鼠标样式为手形
??? this.buttonMode = true;
??? this.mouseChildren = false;
??
??? addEventListener(MouseEvent.MOUSE_OVER,handleEvent);
???????? addEventListener(MouseEvent.MOUSE_OUT,handleEvent);
?? }
?
?? override protected function createChildren():void {
???????? super.createChildren();
????????
???????? bgElement = new Canvas();
???????? bgElement.setStyle("backgroundColor",0x00ff00);
???????? addChildAt(bgElement,0);
???? }
???
??? private function handleEvent(event:MouseEvent):void{
??????? if(event.type == MouseEvent.MOUSE_OVER)
??????????? highlight = true;
??????? else if(event.type == MouseEvent.MOUSE_OUT)
??????????? highlight = false;
??? }
???
???
??? public function set highlight(value:Boolean):void{
??????? _highlight = value;
??????? invalidateDisplayList()
??? }
???
???? protected override function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void{
??????? super.updateDisplayList(unscaledWidth,unscaledHeight);
??????? graphics.clear();
??????? graphics.beginFill(0,0);
??????? graphics.drawRect(0,unscaledWidth,unscaledHeight);
??????? graphics.endFill();???????

???????? name = label; ???????? bgElement.setActualSize(unscaledWidth,unscaledHeight); ???????? if(_highlight) ??????????? bgElement.visible = true; ??????? else ??????????? bgElement.visible = false; ??????????? ?????????????? } ?????? } ? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读