Есть код:

Код AS3:
public class Keyboard extends MovieClip
{
private var _keys:Array;
public function PianoKeyboard()
{
this.addEventListener(Event.ADDED_TO_STAGE, stageHandler, false, 0, true);
}
private function stageHandler(event:Event):void
{
_keys = []; // в этом месте добавляем в массив кнопки - убрано ради экономии места
for(var i:int=0;i<_keys.length;i++)
{
_keys[i].Init(keyHandler); // цепляем на кнопку слушатель
}
}
private function keyHandler():void
{
MessagesController.dispatcher.dispatchEvent(new Event("keyboard_key_pressed"));
}
}
Функция Init принимает функцию и цепляет ее на событие MouseEvent.CLICK.
Но в таком случае, все кнопки выполняют одно и тоже действие. А вот как прицепить на каждую разное (т.е. как дать понять обработчику события keyboard_key_pressed какая из кнопок нажата)
Кнопка самодельная и лучше бы обойтись без ее модификации.