六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 207|回复: 0

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

[复制链接]

升级  28.67%

86

主题

86

主题

86

主题

举人

Rank: 3Rank: 3

积分
286
 楼主| 发表于 2013-2-8 00:23:43 | 显示全部楼层 |阅读模式
OFC2是很好用的Flash图形库,其中包括的曲线:line,bar(3d,glass等),area,雷达图等,可以利用开源的FlashDevelop编译运行,但在中文支持方面却存在几个问题,比如Y轴无法显示中文等,解决的思路有两个:

  • 将中文字符如simsun.ttc加入到Flash工程中,编译进Flash文件,这样就会存在一个问题,由于字体库足有10M,所以编译后的Flash文件将会变得非常庞大,足有10M左右,故弃之。
  • 另一解决思路是将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
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表