Ando practicando con las clases para familiarizarme mas con ellas. Podría solucionar este asunto con AS1, pero me gusta hacer las cosas bien

Estoy utilizando Delegate para hacer un menú con clases (son tres opciones de menú). La cuestión es que no consigo que me reconozca cada opción de menú, es decir, sí que reconoce la funcion incluida en delegate, pero siempre me hace el rollover (o cualquier otra función que aplique) con el mismo elemento. Mirando tutoriales, la única diferencia que encuentro con mi programación es que mis opciones de Menú son MovieClips que están en el escenario en lugar de crearlos con attachmovie o createMovieClip.
Dicho esto, por qué no funciona bien?. Aquí está mi código:
class clases.EventosMenuPrincipal extends MovieClip {
///// PROPIEDADES
private var _ruta:MovieClip;
private var _mc:MovieClip;
private var botonesMenu:Array = new Array ("trabajos_mc", "servicios_mc", "equipo_mc"); /// nombre de los movieClips de mi menu
/////////////////////////////////////////////////
function EventosMenuPrincipal (ruta:MovieClip) {
_ruta = ruta; /// para mantener el ámbito de la clase
private function botones () {
for (var i:Number = 0; i < botonesMenu.length; i++) {
_mc = _ruta[botonesMenu[i]]; /// siendo _ruta una referencia de ámbito
_mc.onRollOver = Delegate.create(this, mouse_over);
}
}
private function mouse_over () {
trace (_mc)
_mc.txt.gotoAndPlay("roll"); //// funciona pero siempre con la misma instancia
}
}
y en la linea de tiempo tengo
var Eventos:EventosMenuPrincipal = new EventosMenuPrincipal (this);
por qué no funciona? deben ser movieClips generados en programación? no pueden estar en el stage inicialmente?
muchas gracias,
mig