В ActionScript classes > Key > getAscii (Key.getAscii method) есть один недостаток -- The ASCII values returned are English keyboard values (т.е. какая бы раскладка не была включена, вернется все равно английский аски). Бился над этой проблемой кучу времени. Единсвенный, относительно нормальный, способ, который я придумал -- это английский аски код пропускать через массив.

Код:
this.createTextField("my_txt", 0, 100, 100, 100, 100);
//
var rusLayout:String = ' !Э№;%?э()*+б-ю.0123456789ЖжБ=Ю,"ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯх\\ъ:_ёфисвуапршолдьтщзйкыегмцчняХ/ЪЁ';
var rusLayoutCL:String = ' !э№;%?Э()*+Б-Ю.0123456789жЖб=ю,"ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯХ\\Ъ:_Ёфисвуапршолдьтщзйкыегмцчнях/ъё';
//
var filter:Array = new Array(32);
filter = filter.concat(rusLayout.split(""));
var filterCL:Array = new Array(32);
filterCL = filterCL.concat(rusLayoutCL.split(""));
//
var ascii:Number;
var rusSymbol:String;
var currentFilter:Array;
//
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
ascii = Key.getAscii();
//
if (!Key.isToggled(Key.CAPSLOCK)) {
currentFilter = filter;
} else {
currentFilter = filterCL;
}
//
rusSymbol = currentFilter[ascii];
//
my_txt.text = rusSymbol;
};
Key.addListener(keyListener);
//}
Работает только при включенной английской раскладке!!
У меня есть подозрения, что это как то можно обойти при помощи цинка. Есть какие-нибудь мысли по этому поводу?