openfl 2.0.1 android上的中文输入问题

android\bin\src\org\haxe\lime目录下仅有GameActivity.java继承自Activity.java,可覆写onKeyMultiple方法
添加

@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;
	}

另需注意import android.view.KeyEvent;
template替换方法:

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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注