今天手贱更新了一下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时找到的方法。

openfl更新2.0后,android输入法又不能输中文了的更多相关文章

  1. gulp更新4.0后的报错(gulp报Did you forget to signal async completion?)

    本文首发于青云工作室 原文链接为 https://qystudio.ltd/posts/55153.html 缘起 今天我升级了gulp到4.0,在git三件套之后,网站并没有更新,我便登录了gith ...

  2. android studio从1.5更新到2.0后terminal无法运行gradle命令,提示无法找到gradle命令

    android studio从1.5更新到2.0后terminal无法运行gradle命令,提示无法找到gradle命令. 'gradle' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 设 ...

  3. 关于Android Studio升级到2.0后和Gradle插件不兼容的问题

    今天升级AS到2.0后,用AS在真机上调试,发现报了如下错误: This version of Android Studio is incompatible with the Gradle Plugi ...

  4. android使用百度地图最新sdk5.0后后代码混淆时,地图无法显示闪退问题

    描述:刚开始遇到这个问题我一步一步去排除,最后发现在初始化地图的时候,代码混淆就有问题了, 问题描述:当跳显示地图的页面APP闪退, 解决对比: 1:对于老版本百度sdk:代码混淆时语句: -libr ...

  5. 解决IDEA2018.1.5或者Android Studio 3.0版本的输入法不跟随光标问题

    问题1:IDEA2018.1.5版本的输入法不跟随光标 解决办法1:修改JDK版本,步骤如下: 1. 使用快捷键ctrl+shift+A,在输入框中输入Switch Boot JDK,如图所示 2.替 ...

  6. Android Studio 升级到3.0后出现编译错误\.gradle\caches\transforms-1\files-1.1\*****-release.aar

    Android Studio 升级到3.0后出现各种编译问题,其中有一个问题是关于资源找不到的问题,百度了半天,也没有相关的文章 C:\Users.gradle\caches\transforms-1 ...

  7. Android输入法扩展之外接键盘中文输入

    大家想不想要这样一台Android  Surface平板,看着就过瘾吧. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSVRsZWFrcw==/font/ ...

  8. Android输入法框架系统(上)

    输入法,就是用来输入字符(包括英文,俄文,中文)的工具.输入法你可以看成是一种字符发生器,它将输入数据触摸事件或者按键事件转化为其他更丰富的字符.在PC时代,输入法的原始输入来自实体键盘,鼠标,然后输 ...

  9. 写一个Android输入法02——候选窗、转换

    上一篇介绍了完成Android输入法的最小化步骤,它只能将按键对应的字符上屏.一般的东亚语言都有一个转换的过程,比如汉语输入拼音,需要由拼音转成汉字再上屏.本文将在前文基础上加入完成转换过程所必需的候 ...

随机推荐

  1. nf_conntrack之解决方案

    1.现象 在/var/log/message中出现以下信息 Dec 8 11:22:29 product08 kernel: nf_conntrack: table full, dropping pa ...

  2. Apache2.4整合tomcat8

    1,编译mod_jk.so 不同版本apache对应不同的mod_jk,试验用tomcat-connectors-1.2.41-src.tar.gz , 下载后,解压,进入./native文件夹依次输 ...

  3. 根据Django后台的ajax大全

    一.什么是ajax 1.1 什么是JSON? AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语 ...

  4. 源代码中直接package edu.princeton.cs.algs4还是import edu.princeton.cs.algs4问题

    对于前者这个问题,直接在src目录下命名一个包:edu.princeton.cs.algs4 即创建了文件:src->edu->princeton->cs->algs4,然后把 ...

  5. JSP--常用指令

    1.JSP中的page指令: jsp中指令格式:<%@   指令名字    key=value    key=value   ......%> <%@ page language=& ...

  6. 语义web相关概念

    前言:最近做的项目是自然语言处理相关的,看了一本书<语义web技术基础>,总的来看,接触自然语言处理,语义理解也有差不多一年的时间了.这两天想了一想,自己究竟学到了什么,掌握了哪些新的知识 ...

  7. STL中一些函数的应用

    1.nth_element():找到第几大的数.用法:nth_element(a,a+k,a+n),返回一个数组a中第k大的数,时间复杂度比较小,头文件#include <algorithm&g ...

  8. 【P2629】好消息,坏消息(前缀和+单调队列优化DP)

    一激动一颓就会忘了总结... 前面的大黄题就不总结了. 这个题我只想说一声艹,一开始的思路就是正确的,然后计算的时候有了一个瑕疵,不过很快也就改过来了.然后却一直连样例都过不了.仔仔细细看了老半天,经 ...

  9. Proxy动态代理

    Proxy动态代理 package com.test.dynamicproxy; public interface Subject { public void request(); } package ...

  10. DanceLink

    DanceLink是一个可以解决精确覆盖和重复覆盖的搜索算法 重复覆盖就是在精确覆盖的remove等处做改变 都是十字循环链表 精确覆盖 给出一个01矩阵 要求选择几行 使每一列都有且仅有一个1 在求 ...