Возможно вам подойдёт такой способ (не уверен что он лучший), но всё же. Всё что нужно это создавая объекты Sound, присваивать в конце имени число клавиши, к которой этот звук будет относится.
В примере ниже сделаны только два звука для клавиш "право" и "вверх" (37,38). Остальные можете добавить самостоятельно.

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
/**
* ...
* @author Samana
*/
public class Main extends Sprite
{
private var currentKey:uint; //текущая нажатая клавиша
private var allKeys:Array = [];//массив со всеми клавишами
private var allSoundChannels:Array = [];//каналы для каждого звука
private var workKeys:Array=[37,38]//массив с номерами клавиш, которые нужно обрабатывать
private var sound_37:Sound = new Sound(new URLRequest("../lib/piano.mp3"));//музыка для клавиши "право" 37
private var sound_38:Sound = new Sound(new URLRequest("../lib/guitar.mp3"));//музыка для клавиши "вверх" 38
public function Main():void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
}
//------------------------------------------------------------------------------------
private function key_down(e:KeyboardEvent):void
{
//если клавиша нажата, то она не будет включать свою мелодию до тех пор
//пока не будет отжата.
currentKey = e.keyCode;
if (workKeys.indexOf(currentKey)!= -1)
{
if (!allKeys[currentKey])
{
allKeys[currentKey] = true;
//play
allSoundChannels[currentKey] = (this["sound_" + currentKey] as Sound).play();
}
}
}
//------------------------------------------------------------------------------------
private function key_up(e:KeyboardEvent):void
{
currentKey = e.keyCode;
if (workKeys.indexOf(currentKey)!= -1)
{
if (allKeys[currentKey])
{
allKeys[currentKey] = false;
//stop
(allSoundChannels[currentKey] as SoundChannel).stop();
}
}
}
//------------------------------------------------------------------------------------
}
}