The problem is that you don't give a name to your Shape.
fullmenu_mc.menu_map_mc
doesn't know that your variable named enemy_beacon
is the same that you've added to it's children.
Targeting children like that means that you are using their instance names. So fullmenu_mc.menu_map_mc.enemy_beacon
means that you are searching a child called enemy_beacon
inside menu_map_mc
. And with the first two lines, you've just added some child to that menu item, but haven't specified name.
Instance names are not the same as your variables. Check this out:
var myShape:Shape = new Shape();
myShape.name = 'otherShape';
this.addChild(myShape); // you add specific item, name doesn't matter
trace (this.getChildByName('otherShape') == myShape); // you get child by NAME
// and because the child is the same as you've added, this will output: TRUE