Собственно что то в этом роде, пихаем в первый кадр и тестируем

Код:
array = new Array([["A"], ["B"], ["C"]], [["D"], ["E"], ["F"]], [["G"], ["H"], ["I"]]);
F_createTable = function (arr) {
allLen = arr.length;
for (var i = 0; i<allLen; i++) {
boxLen = arr[i].length;
for (var j = 0; j<boxLen; j++) {
_root.createTextField("tf"+i+j, this.getNextHighestDepth(), j*70, i*30, 60, 20);
var tf = _root["tf"+i+j];
with (tf) {
type = "input";
border = true;
textAlign = "center";
text = arr[i][j];
}
}
}
};
F_createTable(array);
//
gorPos = 0;
verPos = 0;
//
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.LEFT :
if (gorPos>0) {
gorPos--;
} else {
gorPos = boxLen-1;
}
Selection.setFocus("tf"+verPos+gorPos);
break;
case Key.UP :
if (verPos>0) {
verPos--;
} else {
verPos = allLen-1;
}
Selection.setFocus("tf"+verPos+gorPos);
break;
case Key.RIGHT :
if (gorPos<boxLen-1) {
gorPos++;
} else {
gorPos = 0;
}
Selection.setFocus("tf"+verPos+gorPos);
break;
case Key.DOWN :
if (verPos<allLen-1) {
verPos++;
} else {
verPos = 0;
}
Selection.setFocus("tf"+verPos+gorPos);
break;
}
};
Key.addListener(keyListener_obj);
Потом тыркаем мышкой в первое текстовое поле с буковкой а и начинаем щёлкать стрелками