Yo uso este codigo para mostrar y esconder un menu.
1) el codigo lo pones en el primer fotograma de la línea de tiempo de tu menu
Código :
_global.objMenu = this;
Pos0 = this._y;
Pos1 = Pos0 - 30;
swSobre = false;
FondoMenu.useHandCursor= false;
objBtnAct = null;
this._y = Pos1;
trace("PosMapa (" + Pos0 + ")(" + Pos1 + ")");
//**********************************************************************
IniciaMueve = function (swMuestra) {
if (swMuestra) { // muestra menu
if (_global.objMenu._y <= _global.objMenu.Pos1) return;
trace("Inicia Muestra menu");
_global.objMenu.PosFin = _global.objMenu.Pos1;
_global.objMenu.Inc = -8;
_global.objMenu.Saltar = 0;
} else {
if (_global.objMenu._y >= _global.objMenu.Pos0) return;
trace("Inicia Esconde menu");
_global.objMenu.PosFin = _global.objMenu.Pos0;
_global.objMenu.Inc = +3;
_global.objMenu.Saltar = 18;
}
_global.objMenu.swVisto = swMuestra;
_global.objMenu.onEnterFrame = MueveMenu;
}
//**********************************************************************
MueveMenu = function () {
_global.objMenu.Saltar--;
if (_global.objMenu.Saltar > 0) return;
_global.objMenu._y += _global.objMenu.Inc;
swTermina = false;
// trace("MueveMenu Saltar=" + _global.objMenu.Saltar + " PosY act=" + _global.objMenu._y + " PosFin=" + _global.objMenu.PosFin);
if (_global.objMenu.Inc > 0) { // esconde menu
if (_root._ymouse > _global.objMenu.Pos1 and _global.objMenu.swSobre) {
_global.objMenu.IniciaMueve(true);
return;
}
if (_global.objMenu._y >= _global.objMenu.PosFin) swTermina = true;
} else {
if (_global.objMenu._y <= _global.objMenu.PosFin) swTermina = true;
}
if (swTermina) {
_global.objMenu._y = _global.objMenu.PosFin;
_global.objMenu.onEnterFrame = DetectaMenu;
}
}
//**********************************************************************
DetectaMenu = function () {
if (_root._ymouse > _global.objMenu.Pos1 and _global.objMenu.swSobre) {
if (!_global.objMenu.swVisto) _global.objMenu.IniciaMueve(true);
} else {
_global.objMenu.IniciaMueve(false);
}
}
//**********************************************************************
FondoMenu.onRollOver = function () {
_global.objMenu.swSobre = true;
}
//**********************************************************************
FondoMenu.onRollOut = function () {
_global.objMenu.swSobre = false;
}
//**********************************************************************
function MenuFijo(objBoton){
objBoton.onRollOver = function () {
_global.objMenu.swSobre = true;
}
objBoton.onRollOut = function () {
_global.objMenu.swSobre = false;
}
}
//**********************************************************************
MenuFijo(BtnZoomMas);
MenuFijo(BtnZoomMenos);
MenuFijo(BtnActividad);
//**********************************************************************
_global.objMenu.onEnterFrame = DetectaMenu;
2) El menu lo colocas en la parte inferior de tu escenario, fuera del mismo, justo en la orilla.
3) dentro del menu colocas un movieclip al que llamo "FondoMenu", es un cuadro transparente que fungira como area sensible que detecta el cursor-sobre y comienza a mostrar el menu, este debe estar por arriba del menu y tambien debe abarcar el área que ocupa el menu.
4) Donde tengo la linea "Pos1 = Pos0 - 30;" puedes cambiar el numero 30 por el numero de pixeles que subira el menu desde la posición donde se encuentra.
Lo que hace el codigo es definir la función onEnterFrame del menu, e ir subiendo 8 pixeles en cada frame o cada porcion de tiempo que representa mostrar un frame, esto lo hace al detectar que el cursor esta sobre el área sensible, y al detectar que el cursor esta fuera del área sensible, comienza el descenso del menu, aumentando 3 pixeles por cada porcion de tiempo para mostrar un frame.
La función MenuFijo, hace que los botones tambien sean área sensible para mostrar el menu, debes poner una línea del siguinete codigo para cada boton del menu, si no los pones, el menu se escondera aunque estes sobre algún botón del menu.
Código :
MenuFijo(miBoton); // se pasa como parametro el objeto instanciado con el nombre de miBoton