Вот вроде получилось при таком раскладе:

Код AS3:
var soundFactory:Sound = new Sound();
var request:URLRequest = new URLRequest("b16.mp3");
soundFactory.load(request);
var isPlaying:Boolean = false;
var channel:SoundChannel;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyupHandler);
function keydownHandler(event:KeyboardEvent):void
{
if ( !isPlaying)
{
isPlaying = true;
channel = soundFactory.play();
channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
}
function keyupHandler(event:KeyboardEvent):void
{
if ( isPlaying)
{
channel.stop();
isPlaying = false;
}
}
function soundCompleteHandler(event:Event):void
{
isPlaying = false;
channel.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
Еще бы убрать цикл, чтоб по окончании звучания ноты(4 сек.) больше не играла, было бы хорошо.
Остается только для всех нот прописать код на каждую клавишу.
.....
Вопрос: как убрать реагирование раскладки клавиатуры на большую и малую литеру. Смотрел вроде как вводить keyCode и charCode для каждой клавиши, но еще не пробовал, но с keyCode срабатывало только при нажатом шифте, когда нажимал клавишу "А".