首页 > web前端 > Open Flash Chart X坐标显示中文

Open Flash Chart X坐标显示中文

2012年3月12日 发表评论 阅读评论

从官网上下载的已编译好ofc的swf文件,x坐标是无法显示中文的,对于中文系统的用户,似乎有点不够友好,好在作者提供了源代码,我们只需要简单的修改就可以实现显示中文的功能。关于如何编译,可以查看文章:自己动手编译Open Flash Chart

需要说明的是,由于x坐标上的文本支持旋转,所以必须需要在swf中内嵌字体,作者也给出了这样的注释:Ugh, ugly code so we can rotate the text。作者内嵌的字体是Arial,该字库不支持中文,我们可以使用SimSun字体代替,它也是window操作系统是默认字体,但是体积比英文字体Arial大很多,所以最后编译出来的swf也比较大,我编译出来的大小是6.8M。

通过FlashDevelop打开项目,在open-flash-chart/elements/axis 下找到XAxisLabels.as文件并打开它,按如下提示修改:

修改 1:
注释下面内容,大概在25行
[Embed(systemFont = 'Arial', fontName = 'spArial', mimeType = 'application/x-font')]

在下面增加如下内容,如果系统没有安装SimSun,需要先安装
[Embed(systemFont = 'SimSun', fontName = 'spSimSun', mimeType = 'application/x-font')]

修改 2:
大概在226行有如下代码
fmt.font = "spArial";
把spArial替换成上述fontName指定的值,即
fmt.font = "spSimSun";

代码修改完后,重新编译,应该会在当前目录下重新生成一个新的swf,此swf就能让x坐标显示中文了。

上述编译好的新swf虽说能正常在x坐标上显示中文,但是由于体积庞大,用户体验应该不会太好。目前我的解决办法是,同时让原始swf和先编译好的swf一起加载,原始swf体积小,会在第一时间呈现给用户,体积大flash让其要一个隐藏的div中慢慢加载,当它加载完成时,隐藏先前显示的swf,用能显示中文的swf替换,这样效果还不错,另外浏览器有缓存功能,所以一旦某次成功加载过显示中文的swf,以后显示的速度还是蛮快的。改天有空做一个demo看看。



欢迎转载,转载请注明文章出处,谢谢!
垃圾有点差凑合看还不错很精彩 (1 人打了份: 平均分:5.00)
Loading...Loading...
分类: web前端 标签:
  1. Kresnik_02
    2012年11月14日17:05 | #1

    我也遇到同样的问题了,LZ有没有可以显示中文的swf文件呢,求分享。

    • admin
      2012年11月15日16:38 | #2

      中文的需要重新编译,由于把中文字体嵌入进去了,所以swf会比较大,有6M多

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量