当文本字段中键入文本并在出现之前将其替换为其他内容时,是否有某种方法来拦截文本?AS3 - 截取并替换输入文本
我正在开发学习法语的Flash游戏,我想让用户在美式键盘上输入重音符号。在法语键盘上,'é'由'2'键产生。由于游戏不需要数字,我希望用户能够按'2'并在文本字段中显示'é'(并与其他口音类似)。
我希望能够使用key_down的事件处理程序是这样的:
function myInputOnKeyDown(event:KeyboardEvent) {
if (event.keyCode == 50) {
event.charCode = 233; // = the code for 'é'
}
}
这在其他平台上工作,但似乎并没有在所有的工作ActionScript 3中我试着使用key_down,key_up,text_input事件,调整了十几种不同的方式,但没有成功:我似乎无法更改事件属性,只是阅读它们。
我也尝试停止事件传播并手动插入重音字符。这在正常使用中工作正常(例如使用appendText()
),但是重现文本字段的所有行为将会是过多的编码:插入光标而不仅仅是结尾;替换任何选定的文本,等等。
到目前为止我所得到的最好的结果是沿着:text.replace(/2/, 'é')
的行向key_up处理程序添加替换函数。与此相关的问题是用户在用重音字符替换之前可以看到数字2,换句话说,它看起来是业余的。我希望角色能够出现,就好像他们使用法语键盘一样。
我很感激任何想法。
感谢您的回答,但似乎并未改变出现在输入框中的文字。我仍然得到'2'而不是'é'。 – Griswolder
啊对不起,我发布这个时候已经很晚了,你将无法修改事件,你将不得不手动更新输入框中的文本,所以在AS3中替换字符串中的字符后://stackoverflow.com/questions/2831502/change-a-character-in-a-string-using-actionscript – shaunhusain