當文本字段中鍵入文本並在出現之前將其替換爲其他內容時,是否有某種方法來攔截文本?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