Menu Dinamico
Publicado por Mauricio Morales (1 intervención) el 28/07/2006 17:05:17
Hola amigos. soy nuevo en esto de actionscript y necesito un poco de ayuda para crear un menu dinamico.
yo ya he avanzado con el menu y este funciona pero tiene un pequeño problema. me explico, este es un menu que contiene "menu" y "submenu", osea al principio apareceran 5 botones los cuales al ser presionados aparaeceran las opciones de este debajo del boton, corriendose todos los botones que se encuentren abajo.
la idea es que si presiono otro boton, el que ya estaba abierto se cierre y se abra el que presione. en el codigo que pondre mas abajo esta echo el problema que tiene es que cuando tengo un boton presionado y presiono otro este sube muy rapido y no de la forma que yo quiero(pausado).. bueno espero que me puedan ayudar. desde ya les doy las gracias.
para que el codigo funcione se deben tener dos movieclip, con vinculacion uno es boton_mc y el otro menu_mc
Codigo.
var ancho_bt = 33; //ancho de los botones y mc
var acum_posi = 0;
var p=0;
//genera los botones principales
for (p=0; p<5; p++) {
var bt_mesant = attachMovie("boton_mc","boton_mc"+p, p);
bt_mesant._x = 10; //POSI X
bt_mesant._y = ancho_bt * p; // POSI Y
_root.bt_mesant.nombre.text = "Movie " + p + " " + bt_mesant;
}
//mueve los botones dinamicamente hacia arriba // se supone
function _mover(movie, posi){
yEsc = new Array(movie._y, posi);
movie.onEnterFrame = function() {
movie._y -= (yEsc[j]+15)/15;
if (movie._y > posi){
}else{
movie._y = posi;
delete this.onEnterFrame;
}
}
movie._y = posi;
}
//mueve los botones dinamicamente hacia abajo // se supone
function _mover2(movie, posi){
yEsc = new Array(movie._y, posi);
j=1;
movie.onEnterFrame = function() {
if (movie._y < posi){
movie._y += (yEsc[j]+15)/15;
}else{
movie._y = posi;
delete this.onEnterFrame;
}
}
}
function _alpha_mc(mc){
mc.onEnterFrame=function(){
//trace(mc._alpha);
if(mc._alpha > 100){
delete mc.onEnterFrame;
}
mc._alpha+=10;
//mc._alpha = mc._alpha;
}
}
//muesta los movieclip, k serian los submenu
function _llama_mc(posi){
for (r=1; r<3; r++) {
var bt_mesant = attachMovie("menu_mc","menu_mc"+r*10, r*10);
bt_mesant._x = 10; //POSI X
bt_mesant._y = (r*33) + posi; // POSI Y
bt_mesant._alpha = 0;
_alpha_mc(bt_mesant);
}
}
//al presionar el boton viene aki
function _envio(mc_bt){
var posi_llegada = 0;
var indica = 0;
for (var i=1; i<p; i++) {
posi_llegada = 33*i;
_mover(_root["boton_mc"+i],posi_llegada);
}
var cant = 66;
var posi = 0; //indicara posicion en la que se debe comenzar a bajar en cascada
for (var i=0; i<p; i++) {
if (_root["boton_mc"+i] == mc_bt){
posi = i+1;
}
}
_llama_mc(mc_bt._y);
for (var i=posi; i<p; i++) {
_mover2(_root["boton_mc"+i], _root["boton_mc"+i]._y+cant);
}
}
yo ya he avanzado con el menu y este funciona pero tiene un pequeño problema. me explico, este es un menu que contiene "menu" y "submenu", osea al principio apareceran 5 botones los cuales al ser presionados aparaeceran las opciones de este debajo del boton, corriendose todos los botones que se encuentren abajo.
la idea es que si presiono otro boton, el que ya estaba abierto se cierre y se abra el que presione. en el codigo que pondre mas abajo esta echo el problema que tiene es que cuando tengo un boton presionado y presiono otro este sube muy rapido y no de la forma que yo quiero(pausado).. bueno espero que me puedan ayudar. desde ya les doy las gracias.
para que el codigo funcione se deben tener dos movieclip, con vinculacion uno es boton_mc y el otro menu_mc
Codigo.
var ancho_bt = 33; //ancho de los botones y mc
var acum_posi = 0;
var p=0;
//genera los botones principales
for (p=0; p<5; p++) {
var bt_mesant = attachMovie("boton_mc","boton_mc"+p, p);
bt_mesant._x = 10; //POSI X
bt_mesant._y = ancho_bt * p; // POSI Y
_root.bt_mesant.nombre.text = "Movie " + p + " " + bt_mesant;
}
//mueve los botones dinamicamente hacia arriba // se supone
function _mover(movie, posi){
yEsc = new Array(movie._y, posi);
movie.onEnterFrame = function() {
movie._y -= (yEsc[j]+15)/15;
if (movie._y > posi){
}else{
movie._y = posi;
delete this.onEnterFrame;
}
}
movie._y = posi;
}
//mueve los botones dinamicamente hacia abajo // se supone
function _mover2(movie, posi){
yEsc = new Array(movie._y, posi);
j=1;
movie.onEnterFrame = function() {
if (movie._y < posi){
movie._y += (yEsc[j]+15)/15;
}else{
movie._y = posi;
delete this.onEnterFrame;
}
}
}
function _alpha_mc(mc){
mc.onEnterFrame=function(){
//trace(mc._alpha);
if(mc._alpha > 100){
delete mc.onEnterFrame;
}
mc._alpha+=10;
//mc._alpha = mc._alpha;
}
}
//muesta los movieclip, k serian los submenu
function _llama_mc(posi){
for (r=1; r<3; r++) {
var bt_mesant = attachMovie("menu_mc","menu_mc"+r*10, r*10);
bt_mesant._x = 10; //POSI X
bt_mesant._y = (r*33) + posi; // POSI Y
bt_mesant._alpha = 0;
_alpha_mc(bt_mesant);
}
}
//al presionar el boton viene aki
function _envio(mc_bt){
var posi_llegada = 0;
var indica = 0;
for (var i=1; i<p; i++) {
posi_llegada = 33*i;
_mover(_root["boton_mc"+i],posi_llegada);
}
var cant = 66;
var posi = 0; //indicara posicion en la que se debe comenzar a bajar en cascada
for (var i=0; i<p; i++) {
if (_root["boton_mc"+i] == mc_bt){
posi = i+1;
}
}
_llama_mc(mc_bt._y);
for (var i=posi; i<p; i++) {
_mover2(_root["boton_mc"+i], _root["boton_mc"+i]._y+cant);
}
}
Valora esta pregunta


0