今天手贱更新了一下openfl,fd里面又各种报错。最伤心的是,之前修改MainView.java输入中文的方法现在居然失效了。还好这段时间研究c2dx,总算是能读能懂修改的那段代码,捣鼓了一下午,算是解决了。

openfl以前版本android输中文的解决方案原贴地址:

http://blog.csdn.net/rocks_lee/article/details/8274194

新版lime1.5.7 +openfl2.0.1。不知道是lime还是openfl,升级之后直接去掉了nme的调用。所以改原先nmu下的MainView.java也没用了。在lime下也有MainView.java文件,我试图加override发现GLSurfaceView下面跟本没有onKeyMultiple方法给我覆盖。而且onKeyChange由原先的两参数变成了三个参数。完全没用。

于是我在lime目录下找到了GameActivity.java类,activity是有onKeyMultiple方法的。于原贴代码改成如下,粘到GameActivity.java里面即可。

// Pelephone
@Override public boolean onKeyMultiple(final int inKeyCode, int repeatCount, final KeyEvent event) {
String s = event.getCharacters();
if (s == null || s.length() == 0) return super.onKeyMultiple(inKeyCode, repeatCount, event);
final char[] cc = s.toCharArray();
int cnt = 0;
for (int i = cc.length; --i >= 0; cnt += cc[i] != 0 ? 1 : 0);
if (cnt == 0) return super.onKeyMultiple(inKeyCode, repeatCount, event);
final MainView me = mView;
me.queueEvent(new Runnable() {
//This method will be called on the rendering thread:
public void run() {
for (int i = 0, n = cc.length; i < n; i++) {
int keyCode;
if ((keyCode = cc[i]) != 0) {
int charCode = me.translateKeyCode (keyCode, event);
//Simulate key down and up...
me.HandleResult(Lime.onKeyChange(keyCode,charCode, true));
me.HandleResult(Lime.onKeyChange(keyCode,charCode, false));
}
}
}
});
return true;
}
//end pelephone

直接改文件夹下的GameActivity.java,下次更新后还是会被覆盖。而且这样搞也影响lime代码的完成性。可以用改模板的方法,把模板切到自己项目的目录下。

例如我在项目下建一个tmp文件夹,将修改好的GameActivity.java放入tmp文件夹。再然后修改项目配置xml加入下面一行标签

<template path="tmp/GameActivity.java" rename="src/org/haxe/lime/GameActivity.java" if="android" />

编译一下,又可以打中文了。

另外还有一个用jni解决中文问题的方法,我找到的帖子如下

http://blog.sina.com.cn/s/blog_47030a4c0101dnml.html

jni的思路不错,学到许多好东西,我也是在找接入开放平台sdk时找到的方法。

最新文章

  1. C#刨根究底:《你必须知道的.NET》读书笔记系列
  2. 刷新DNS命令 如何刷新DNS缓存(flushdns)
  3. 被忽略的js细节
  4. Redis执行Lua脚本示例
  5. ACM 最少步数
  6. Spark Streaming、HDFS结合Spark JDBC External DataSouces处理案例
  7. PHP快速抓取快递信息
  8. xUTils框架的学习(二)
  9. 基于springmvc的简单增删改查实现---中间使用到了bean validation
  10. log 的 debug()、 error()、 info()方法的区别
  11. [转]IOS开发中的CGFloat、CGPoint、CGSize和CGRect
  12. react源码探索
  13. tf.matmul()和tf.multipy()的区别
  14. javascript-js模拟form页面提交跳转
  15. Angular 4 依赖注入
  16. Asp.Net Core App 部署故障示例 2
  17. Windows:C++11并发编程-条件变量(condition_variable)详解
  18. Sublime的使用!emmet常用快捷键梳理
  19. POJ 2262 Goldbach&#39;s Conjecture(Eratosthenes筛法)
  20. Transaction And Lock--存储过程中使用事务的模板

热门文章

  1. Oracle常用的OCI函数
  2. $.cssHooks 扩展 jquery 的属性操作
  3. linux ip别名和辅助ip地址
  4. Squid 反向代理配置
  5. PHP 获取真实IP地址
  6. JVM内存的堆、栈和方法区
  7. Docker 数据管理-tmpfs mounts
  8. BZOJ 1941 kd-tree
  9. Codeforces Round #386 (Div. 2) C D E G
  10. UOJ12 猜数