Actionscript 3 AS3-截取和替换输入文本

Actionscript 3 AS3-截取和替换输入文本,actionscript-3,Actionscript 3,在文本字段中键入文本时,是否有办法截取文本,并在文本出现之前用其他内容替换它 我正在开发一个学习法语的Flash游戏,我想让用户在美国键盘上输入口音。在法语键盘上,由“2”键生成“e”。由于游戏不需要数字,我希望用户能够按“2”,并在文本字段中显示一个“é”(与其他口音类似) 我希望能够使用一个键关闭事件处理程序,如下所示: function myInputOnKeyDown(event:KeyboardEvent) { if (event.keyCode == 50) {

在文本字段中键入文本时,是否有办法截取文本,并在文本出现之前用其他内容替换它

我正在开发一个学习法语的Flash游戏,我想让用户在美国键盘上输入口音。在法语键盘上,由“2”键生成“e”。由于游戏不需要数字,我希望用户能够按“2”,并在文本字段中显示一个“é”(与其他口音类似)

我希望能够使用一个键关闭事件处理程序,如下所示:

function myInputOnKeyDown(event:KeyboardEvent) {
     if (event.keyCode == 50) {
         event.charCode = 233; // = the code for 'é'
     }
}
这在其他平台上也有效,但在ActionScript3中似乎根本不起作用。我曾经尝试过使用key_down、key_up、text_输入事件,用十几种不同的方式调整事件,但都没有成功:我似乎无法更改事件属性,只是读取它们

我还尝试停止事件传播并手动插入重音字符。这在正常使用中效果很好(例如,使用
appendText()
),但复制文本字段的所有行为将需要太多的编码:在光标处插入,而不仅仅是在末尾插入;替换任何选定的文本,依此类推

到目前为止,我想到的最好的方法是向key-up处理程序添加一个replace函数,其行为:
text.replace(/2/,'e')
。问题是,用户可以在数字2被重音字符替换之前看到它半秒钟:换句话说,它看起来很业余。我希望字符只是出现,就像他们使用的是法语键盘


如果您有任何想法,我将不胜感激。

键下处理程序和事件。stopImmediatePropagation()应该可以做到这一点。

键下处理程序和事件。stopImmediatePropagation()应该可以做到这一点。

谢谢您的回答,但它似乎没有改变输入框中显示的文本。我仍然得到一个“2”而不是一个“e”。啊,很抱歉,当我发布这篇文章时,我迟到了,你将无法修改事件。你必须手动更新输入框中的文本,因此在这里发布关于在AS3中替换字符串中的字符的文章。谢谢你的回答,但它似乎不会更改输入框中显示的文本。我仍然得到一个“2”而不是一个“e”。啊,很抱歉,当我发布此消息时,我迟到了,你将无法修改事件。你必须手动更新输入框中的文本,因此在这里发布关于在AS3中替换字符串中的字符的文章