Vale, le he echado un vistazo y la cosa se ha complicado cuando he visto que en vez de eventos onRollOver tiene eventos de colisión (hitTest). Eso siginifica que cuando la flechita colisiona con el menú, éste se abre (como un evento onRollOver).
Tiene solución y pasa por aplicar un evento escuchador al Mouse y coordinarlo con la colisión. Es decir, si hay colisión y se pulsa el mouse, pues que se abra el menú.
Te paso todo el código rectificado. Echa un vistazo a las diferencias (en azul):
Código:
stop();
var _on:Boolean = false;
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
_on = true;
}
speed = 10;
initial_width = 75;
target_width = 450;
sp = rect1._x;
this.createEmptyMovieClip("emptymc", 0);
emptymc.onEnterFrame = function() {
for (i=1; i<=6; i++) {
if (_root.hit.hitTest(_root._xmouse, _root._ymouse, true)) {
Mouse.addListener(mouseListener);
if (_root["rect"+i].hitTest(_root._xmouse, _root._ymouse, true) && _on) {
new_x = (_root.sp-(75*(i-1)))-rect1._x;
rect1._x += new_x/speed;
n_width = target_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width/speed;
} else {
n_width2 = initial_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width2/speed;
}
} else {
_on = false;
Mouse.removeListener(mouseListener);
new_x = _root.sp-rect1._x;
rect1._x += new_x/(speed+50);
n_width2 = initial_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width2/(speed-1);
}
_root["rect"+(i+1)]._x = _root["rect"+i]._x+_root["rect"+i]._width;
_root["movie"+i]._x = _root["rect"+i]._x-1;
}
};
Saludos!