toxic

备忘录

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
flex lineChart中自定义datatip
November 7, 2011barry.z
在Flex4中使用lineChart会遇到一个bug,datatip上的背景是黑色的,造成文字看不清楚,和整体界面不协调。

那么解决这个问题需要自定义datatip,不使用默认的datatip。

下面的代码自定义一个datatip,在updateDisplayList函数中来定义datatip中要显示的内容和背景颜色

package
{
	import mx.charts.chartClasses.DataTip;
	import mx.charts.*;
	import flash.display.*; 
	import flash.geom.Matrix;
	import flash.text.TextField;     
	
	public class MyDataTip extends DataTip {
		
		// The title is renderered in a TextField.
		private var myText:TextField; 
		
		public function MyDataTip() {
			super();            
		}       
		
		override protected function createChildren():void{ 
			super.createChildren();
			myText = new TextField();
		}
		
		override protected function updateDisplayList(w:Number, h:Number):void {
			super.updateDisplayList(w, h);
			
			// The data property provides access to the data tip's text.
			if(data.hasOwnProperty('text')) {
				myText.text = data.text;
			} else {
				myText.text = data.toString();        
			}
			
			this.setStyle("textAlign","center");
			var g:Graphics = graphics; 
			g.clear();  
			var m:Matrix = new Matrix();
			m.createGradientBox(w+100,h,0,0,0);
			g.beginGradientFill(GradientType.LINEAR,[0xFFFFFF,0xFFFFFF],
				[.1,1],[0,255],m,null,null,0);
			g.drawRect(-50,0,w+100,h);
			g.endFill(); 
		}
	}
}
在lineChart的createComplete函数中调用下面的方法,应用这个新的datatip

linechart.setStyle("dataTipRenderer",MyDataTip); 

 

posted on 2013-05-21 11:22  toxic  阅读(721)  评论(0编辑  收藏  举报