а зачем вам внутри MenuItem в каждом обрабатывать клавиатуру.
в классе-создателе ваших менюАйтемов пихайте их в словарь и подписывайте на события.
по АДД примерно будет выглядеть как :

Код AS3:
_menuItems[_menuItemKeyCode] = _menuItem;
в этом же классе (или отдельном менеджере) при событии клавиатуры

Код AS3:
private function _onKeyboardEvent(e:KeyboardEvent):void{
var item:MenuItem = _menuItems[e.keyCode] as MenuItem;
if(item && super.contains(item) && item.visible && item.enabled){
doSomething();
}
}
думаю на ремоув и изменения кейКода по аналогии сделаете.
собсно хотел просто мысль донести.