У тебя были ошибки, ты перепутал немного. Вот правильный код, в коментах посмотри я написал где были ошибки

Код AS1/AS2:
per = "";
down = false;
_root.createTextField("T",1,50,50,100,100);
_root.T.text="";
_root.T.border=true;
_root.T.type="input";
var obj:Object = {};
Key.addListener(obj);
//per = T.text; Зачем переопределять ведь это не нужно???
obj.onKeyDown = function() {
if (Key.isDown(Key.BACKSPACE) || Key.isDown(Key.DELETEKEY)) {
per=T.text //Тут было наоборот T.text=per, а ведь смысл в том чтобы
//на этом этапе сохранить текст в переменную
down = true;
}
};
obj.onKeyUp = function() {
if (down) {
T.text=per// а тут уже тексту присваивается значение из переменной.
//А было опять же наоборот per=T.text
down = !down;
}
};