我正在尝试使用textinput char代码捕获,但是特殊字符不起作用。请帮忙
import flash.text.TextField;
import flash.events.KeyboardEvent;
var dizi:Array = "şığ".split("");
tf.addEventListener(KeyboardEvent.KEY_DOWN, git);
function git(event:KeyboardEvent):void
{
tf.restrict = dizi.toString();
var harfsira:int= dizi.indexOf(String.fromCharCode(event.charCode));
trace(dizi.toString());
trace(harfsira.toString());
trace(String.fromCharCode(event.charCode.toString()));
}
按下“ş”键
ş,ı,ğ
-1
º
按下“ı”键
ş,ı,ğ
-1
i
按下“ğ”键
ş,ı,ğ
-1
Û
答案 0 :(得分:0)
您从String.fromCharCode(event.charCode.toString())
函数获取的实际字符与数组中的字符不匹配。如果您确实按下了正确的键,则需要将阵列更改为:
var dizi:Array = "ºiÛ".split("");
解决这种不一致问题。
答案 1 :(得分:0)
如果将字体设置为unicode Arial(它可以处理特殊字符)会有帮助吗?。
var format_tf:TextFormat = new TextFormat();
format_tf.font = "Arial"; //"Arial Unicode MS"
format_tf.color = 0xFFFFFF; //white
format_tf.size = 12;
tf.defaultTextFormat = format_tf;
tf.addEventListener(KeyboardEvent.KEY_DOWN, git);
或者我处理外国和国外的唯一经验特殊字符是通过byteArray。如果上述方法不起作用,我将尝试编辑我的答案,包括通过byteArray进行转换(注意:不保证可以工作,甚至没时间做)。