код во .fla:

Код:
#include "remap.as"
this.createTextField("my_txt", 0, 10, 10, 500, 220);
my_tex.type = "input";
my_txt.multiline = true;
my_txt.border = true;
ke = "";
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
var code:Number = Key.getCode();
if (code == 13) {
my_txt.text += newline;
return;
}
if (code == 32) {
my_txt.text += " ";
return;
}
if (Key.isDown(Key.SHIFT)) {
shift = true;
} else {
shift = false;
}
if (shift && !Key.isToggled(Key.CAPSLOCK)) {
ke = "0";
}
if (!shift && Key.isToggled(Key.CAPSLOCK)) {
ke = "0";
}
if (shift && Key.isToggled(Key.CAPSLOCK)) {
ke = "";
}
if (shift && code == 220) {
var ke = "0";
}
if (!shift && code == 220) {
var ke = "";
}
if (shift && code == 191) {
var ke = "0";
}
if (!shift && code == 191) {
var ke = "";
}
if (shift && code >= 48 && code <= 57) {
var ke = "0";
}
if (!shift && code >= 48 && code <= 57) {
var ke = "";
}
my_txt.text += String.fromCharCode(remap["i" + code + ke]);
ke = "";
};
Key.addListener(keyListener);
include во вложении
Привязка происходит именно к кодам клавиш, а не к Ascii. В remap.as просто вручную расписаны по кнопкам символы. Все это можно заточить получше. Это всего лишь рабочий вариант.
Косяк: если вручную нарисовать TextField и дать ему тип input - работать будет гораздо хуже. Поможет my_txt.restrict = "^a-z\\A-Z"