у меня у самого кое-что получилось(но не конечный результат) через скрытое текстовое поле, которое вводилось в фокус с момента запуска ролика и прослушиватель событий TextEvent.TEXT_INPUT
функция на которую был повешен прослушиватель собирала буквы в массив и потом нужная буква вырезалась и выводилась в динамический текст
проблема в том, что мой вариант с момента нажатия одной буквы потом только её и показывал
а был ещё английский сайт где добились вывода любых символов(в том числе и русских букв) но написан ролик был на AS2

выложить ссылку на сайт не могу, но код ролика(своего) выложить могу(исходник мне выкладывать бесполезно, я его "сломал")
Код ролика:

Код AS3:
import com.greensock.* \\у меня используется анимация
import flash.events.TextEvent; \\импорт TextEvent"а
var arr:Array; \\создаём массив
var a, b:int; \\создаём переменные для вырезания буквы из массива
letdetect.visible=false; \\letdetect это текстовое поле и мы его скрываем
stage.focus=letdetect; \\ставим letdetect в фокус
\\здесь начинается анимация
function let(letterstr:String){
lets.letter.text=letterstr;
lets.alpha=0;
lets.height=17;
lets.width=12
TweenMax.to(lets, 1, {alpha:1, height:336, width:220, onComplete:reverse});
}
\\здесь все действия анимации отменяются
function reverse(){
TweenMax.to(lets, 1, {alpha:0, height:17, width:12});
}
\\и вот здесь происходит чудо
letdetect.addEventListener(TextEvent.TEXT_INPUT, callLet);
function callLet(event:TextEvent):void
{
arr = letdetect.text.split(",");
b = arr.length;
a = b-2;
(arr.slice(arr.length-1, arr.length).toString()); \\вот только здесь в начале было присваивание буквы
} \\динамическому тексту