【转】Open Flash Chart支持中文字体旋转最新编译(Version 2 Lug Wyrm Charmer)

原文地址:http://u.hooto.com/guangmean/blog/view/5213.html

之前写过一篇关于OFC的Blog,但没说清楚具体怎么编译,最近有朋友问到就再Blog一篇,希望对大家有所帮助。参见:http://www.hooto.com/home/guangmean/blog/archives/5159.html

编译Open Flash Chart II最新版本,系统环境:Linux + Flex_Builder_for_Linux + Eclipse。

1.下载OFC最新版本源码http://teethgrinder.co.uk/open-flash-chart-2/downloads.php(这里下载的是Version 2 Lug Wyrm Charmer (28th,July 2009) )。

2.下载FlashDevelop http://www.flashdevelop.org/community/viewforum.php?f=11 因在ofc中引用了FlashDevelop里的2个包:org和mx (这里为FlashDevelop-3.0.6-RTM.exe)。

3.在Eclipse中新建一ActionScript项目,并命名为open_flash_chart(可自定义名称),然后导入Open Flash Chart的AS源码,该源码位于:open-flash-chart-2-Lug-Wyrm-Charmer/open-flash-chart文件夹下,同时导入FlashDevelop里的org包、mx包到改项目中。

4.下载中文字体Simsun.ttf,同样导入到open_flash_chart目录里。

5.下载Base64Encoder编码解码类,OFC里自带的Base64Encoder.as有问题,会导致编译时产生1162错误(Function does not have a body),下载后直接覆盖open_flash_chart/mx/utils/Base64Encoder.as即可,下载地址:http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as。

6.嵌入我们的中文字体,共两处:

第一处:open_flash_chart/elements/axis/XAxisLabels.as 找到源码中这一行: [Embed(systemFont = 'Arial', fontName = 'spArial', mimeType = 'application/x-font')] 注释掉该行并在下一行加入:[Embed(source = '/home/guangmean/workspace/open_flash_chart/simsun.ttf', fontFamily = 'SimSun')]

第二处:open_flash_chart/elements/labels/YLegendBase.as 找到源码中这一行:   [Embed(systemFont = 'Arial', fontName = 'spArial', mimeType = 'application/x-font')] 同上,注释掉该行并在下一行加入:[Embed(source = '/home/guangmean/workspace/open_flash_chart/simsun.ttf', fontFamily = 'SimSun')]

7.经过步骤6我们就已经导入了中文字体,但是现在的X坐标中的中文还不会旋转(表现为X坐标的值都不见了)。为此我们还需要再次修改第6步中的XAxisLabels.as和YLegendBase.as源代码:将XAxisLabels.as中make_label()方法里的fmt.font = "spArial"改为fmt.font = "SimSun",YLegendBase.as文件一样。

以下为可选步骤:

8.修改open_flash_chart/Loading.as文件,将dots:Number调整为一个合适的整数,spin.graphics.drawCircle(x,y,3)中的数字3可自行调整,调整后的效果就是Loading data...后的加载圆圈变漂亮了(原理很简单,根据三角函数和圆周率调整轨迹)。

9.修改open_flash_chart.as文件this.load_external_file(file);的上一行:var file:String = "../../data-files/*.txt";将"../../data-files/*.txt"替换为一个合适文件路径(这样做的目的是防止Web应用时ofc在获取数据失败是可以到你指定的地方读取默认数据,改善用户体验)。

10.Error # 2032 with https in IE(Test under IE6 IE7),参考:http://forums.codecharge.com/posts.php?post_id=97771

header("Cache-Control: cache, must-revalidate");
header("Pragma: public");

OK!!! 打完收工

效果如下(分别旋转正负45度角):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值