`
iamzealotwang
  • 浏览: 121364 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

As3 Embed Font(3) ----------Embed Chinese Word

    博客分类:
  • As3
阅读更多

绑定一份字体文件应该是比较容易的事情,网上的教程有许多。

我之前也写了两篇介绍如何绑定字体的Blog(注意Flex4环境下绑定字体有些许不同,在此就不多说了。需要了解的朋友请看我之前的Blog)

 

今天主要说一下绑定中文字符遇到的问题

 

中文字符不像英语只有26个英文单词,所以字体文件都比较大。以微软雅黑为例 一份字体文件就有20多M,要是直接将字体文件绑定进程序中实在难以想象,

所以就要把真正需要的文字绑入其中。

 

对于游戏开发来说,一般都会有一个lang.xml,里面包含了游戏中会用到的所有字符

如:

<root>

   <text key = "BUTTON_OK" value = "确定">

</root>

 

所以只要写一小段代码,把这些字符读出来,然后绑定到一个swf上(可以是主文件,也可以是一份资源文件)。具体的代码由于公司在用,所以不便拿出来share,

但大体上KeyCode如下:

 

1)将中文转换成Unicode的Java代码

 

Java语言:
private Set<String> textSet = new HashSet<String>(0); //定义个HashSet 这样可以自动删除多余字符

String inputString = “你需要转换的字符串,通过XML读入”;
for (char c : inputString.toCharArray()) {
   textSet.add(Integer.toHexString(c));                             //转换到Unicode代码
}

 

 

 

2)将字符绑定到AsClass

 

ActionScript 3语言:
[Embed(source="msyh.ttf", fontName="MyArialSSSS",
   unicodeRange="U+35,U+8bef,U+773c,",
   mimeType="application/x-font" ,embedAsCFF="false")]
public static const ChineseFontEmbedClass:Class

 

 

 

从java中转换过来的字符均为"U+"后面的部分,如Demo中 35,8bef,773c,需要操作Java将每个字符前面加入"U+",后面在加入"," 可以不用对数组的最后一个元素进行特殊处理,

最后一个元素后面在跟一个","的话As3依旧可以编译通过,不会有任何问题。

 

 

至于整体代码我就不贴上面了(万分抱歉),我读xml用的是dom4j,写as3文件是velocity,这些网上有许多Tutorial,并且这里例子也用不了太复杂的功能。

 

 

根据我的测试,一共绑定了229个Unicode字符,主程序大了40K左右。效果还是可以接受的,毕竟一个英文字体文件也有100多K呢。

 

如有任何指教或问题,请给我留言。

 

参考资料:

 

http://kevincao.com/2009/06/flash-font-1/  里面也有一个不错的工具,有兴趣的朋友可以看看

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    AS3 Embed用法

    ### AS3 Embed 用法详解 #### 一、引言 随着ActionScript 3.0 (简称AS3) 的普及与发展,开发人员越来越多地利用AS3进行Flash项目的开发。在AS3环境中,开发者不再像以前版本那样依赖于Flash IDE中的库来存储图形...

    tomcat-embed-websocket-9.0.16.jar

    tomcat-embed-websocket-9.0.16.jar

    tomcat-embed-core-9.0.27.jar

    tomcat-embed-core-9.0.27

    tomcat-embed-jasper-9.0.16.jar

    tomcat-embed-jasper-9.0.16.jar

    python-3.11.0-embed-amd64.zip

    Python 3.11.0-embed-amd64.zip 是一个针对AMD64架构的Python 3.11.0精简版发行包,它包含了一组核心库和运行时支持文件,允许用户在不安装完整Python环境的情况下运行Python程序。这个压缩包特别适合那些需要在没有...

    tomcat-embed-el-9.0.16.jar

    tomcat-embed-el-9.0.16.jar

    tomcat-embed-core-8.5.23.jar

    tomcat-embed-core-8.5.23.jar

    tomcat-embed-core-9.0.16.jar

    tomcat-embed-core-9.0.16

    tomcat-embed-core-8.5.15.jar

    tomcat-embed-core-8.5.15.jar

    python-3.12.0-embed-amd64.zip

    Python 3.12.0-embed-amd64.zip 是一个针对64位Windows系统的Python轻量级打包文件,它包含了一些基本的Python运行时组件,使得开发者可以在不安装完整Python环境的情况下运行Python程序。这个压缩包尤其适用于那些...

    python-3.10.7-embed-amd64

    python-3.10.7-embed-amd64

    python-3.11.5-embed-amd64.zip

    4. **libcrypto-3.dll** 和 **libssl-3.dll**:这两个文件是OpenSSL库的动态链接库版本,用于加密和安全套接层(SSL/TLS)协议。它们在Python中处理加密和网络安全通信时是必需的。 5. **sqlite3.dll**:SQLite是一...

    apache-tomcat-5.5.17-embed.tar.gz

    3. `lib`目录:包含Tomcat运行所需的JAR文件和库。 4. `webapps`目录:默认的Web应用程序部署位置,你可以将你的WAR文件放在这里以部署应用。 5. `logs`目录:日志文件会被写入到这里,帮助诊断和调试问题。 6. `...

    apache-tomcat-9.0.54-embed.zip

    3. **Tomcat Embed Programmatic**: "tomcat-embed-programmatic.jar"提供了程序化的方式来启动和配置Tomcat,使得开发者可以在代码中创建和管理Tomcat实例,无需通过XML配置文件。 4. **Tomcat Embed Jasper**: ...

    python-3.8.0-embed-amd64.zip

    Python 3.8.0-embed-amd64.zip 是一个专门为AMD64架构设计的Python 3.8嵌入式版本的压缩包。这个压缩文件包含了运行Python 3.8程序所需的基本组件,旨在让用户在没有完整安装Python环境的情况下也能执行Python脚本。...

    python-3.9.6-embed-amd64.zip

    python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64.zip python-3.9.6-embed-amd64....

    python-3.10.4-embed-amd64.zip

    python-3.10.4-embed-amd64.zip:Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、macOS等多种操作系统上使用,也可以在Java、.NET框架平台上使用。

    python-3.6.8-embed-amd64.zip

    针对Windows 64位系统的用户,Python 3.6.8 提供了一个名为"python-3.6.8-embed-amd64.zip"的压缩包,它是一个轻量级的可执行环境,无需安装,无任何依赖,解压后即可直接运行Python程序,非常适合快速部署和测试。...

    perl-ExtUtils-Embed-1.30-297.el7.noarch.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics