论坛首页 编程语言技术论坛

OFC2改造版(修复Y轴中文问题等)

浏览 2794 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-27   最后修改:2010-10-28

OFC2是很好用的Flash图形库,其中包括的曲线:line,bar(3d,glass等),area,雷达图等,可以利用开源的FlashDevelop编译运行,但在中文支持方面却存在几个问题,比如Y轴无法显示中文等,解决的思路有两个:

  1. 将中文字符如simsun.ttc加入到Flash工程中,编译进Flash文件,这样就会存在一个问题,由于字体库足有10M,所以编译后的Flash文件将会变得非常庞大,足有10M左右,故弃之。
  2. 另一解决思路是将Y轴显示的旋转功能去掉,这样就可以显示中文了,而且编译后的Flash文件将会维持在200K左右,而且用户体验方面也都比较OK,所以本文采用这个解决思路

修改源码YLegendBase.as文件中的build函数,修改完后如下:

 

 

		private function build( text:String ): void {
			
			var title:TextField = new TextField();
            title.x = 0;
			title.y = 0;
			
			this.text = text;
			
			title.htmlText = this.text;
			
			var fmt:TextFormat = new TextFormat();
			fmt.color = this.css.color;

			fmt.font = this.css.font_family?this.css.font_family:'Verdana';
			
			if (fmt.font == "spArial") {
				title.embedFonts = true;
				title.antiAliasType = AntiAliasType.ADVANCED;
				title.rotation = 270;
				title.height = title.textHeight;
			}
			
			fmt.bold = this.css.font_weight == 'bold'?true:false;
			fmt.size = this.css.font_size;
			fmt.align = "center";
			

			
			title.setTextFormat(fmt);
			title.autoSize = "left";
			
			

			this.addChild(title);
		}

 


注:如果传入的font-family为spArial,那么然后进行旋转操作,修改重新编译后将会看到如下效果:




 

看,可以正常显示Y轴中文了哦,只是横着放而已,没有旋转270°,而且点击右侧Legend将会显示隐藏曲线,效果还是不错的哦,编译后的Flash文件可以在附件中下载!

也可以在这里查看具体效果:http://code.faqee.com/chart2/index.jsp

 

  • 大小: 33.2 KB
   发表时间:2011-01-07  
旋转90° X轴 Y轴怎么解决显示不了中文问题?
如果不旋转90° 横坐标字数超长 汉字就会重叠,看不清,又是问题.知道怎么解决吗?
0 请登录后投票
   发表时间:2011-01-07  
不错,需要这样的经验分享.
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics