Buenas estoy creando un menu con flash y no consigo desplazarme por las diferentes escenas y botones con el teclado, usando los cursores y el enter, solo me deja interactuar con el raton...hay alguna manera de moverse por el menu con el teclado??
Gracias por contestar suriv pero no es exactamente lo que busco, imagina el menu de un dvd por ejemplo, en una escena tienes diversos botones, acceso a escenas, extras, etc.. y si vas moviendo los cursores te desplazas por los botones bien sea de arriba hacia abajo o de izquierda a derecha( los botones muestran su estado "sobre" como si pasases por encima el cursor) y cuando estas sobre el que buscas lo activas con la tecla "enter". Se que es complicado no se si se podra hacer con flash.
Enhorabuena, me encontraste sin ocupacion. Hice el trabajo que necesitas. El fla esta Aca, y el swf:
Y voy a poner el código, para que lo implementes. Primero, haz 6 movie clips. Crea en el frame 1 el estado normal, ye en el frame dos el estado "seleccionado". Ponles los nombres "clip1_mc", "clip2_mc", y asi.
Vamos a trabajar con "coordenadas" X y Y, para asi poder poner los iconos en cualquier parte, y dar libertad de movimiento. Asi, crewamos dos globales, cambiox y cambioy. Luego, creamos las acciones de tecla, en las cuales modificaremos los valores de las coordenadas. Y luego.... pues velo tu mismo:
Código :
//Defines las variables que cambiarán
_global.cambiosx = 0;
_global.cambiosy = 0;
_root.clip1_mc.gotoAndStop(2);
//Teclas y bla bla bla
myListener = new Object();
myListener.onKeyDown = function() {
//Programamos los cambios en x
if (Key.isDown(37)) {
if (cambiosx != 0) {
cambiosx--;
}
} else if (Key.isDown(39)) {
if (cambiosx != 3) {
cambiosx++;
}
} else if (Key.isDown(38)) {
if (cambiosy != 0) {
cambiosy--;
}
} else if (Key.isDown(40)) {
if (cambiosy != 1) {
cambiosy++;
}
} else if (Key.isDown(Key.SPACE)) {
if (cambiosx == 0 && cambiosy == 0) {
_root.texto_txt.text = "Seleccionaste el numero 1";
} else if (cambiosx == 1 && cambiosy == 0) {
_root.texto_txt.text = "Seleccionaste el numero 2";
} else if (cambiosx == 2 && cambiosy == 0) {
_root.texto_txt.text = "Seleccionaste el numero 3";
} else if (cambiosx == 3 && cambiosy == 0) {
_root.texto_txt.text = "Seleccionaste el numero 4";
} else if (cambiosx == 3 && cambiosy == 1) {
_root.texto_txt.text = "Seleccionaste el numero 6";
} else if (cambiosx == 0 && cambiosy == 1) {
_root.texto_txt.text = "Seleccionaste el numero 5";
}
}
};
myListener.onKeyUp = function() {
trace(cambiosx);
trace(cambiosy);
_root.clip1_mc.gotoAndStop(1);
_root.clip2_mc.gotoAndStop(1);
_root.clip3_mc.gotoAndStop(1);
_root.clip4_mc.gotoAndStop(1);
_root.clip5_mc.gotoAndStop(1);
_root.clip6_mc.gotoAndStop(1);
//Cambios que higlightean
if (cambiosx == 0 && cambiosy == 0) {
_root.clip1_mc.gotoAndStop(2);
} else if (cambiosx == 1 && cambiosy == 0) {
_root.clip2_mc.gotoAndStop(2);
} else if (cambiosx == 2 && cambiosy == 0) {
_root.clip3_mc.gotoAndStop(2);
} else if (cambiosx == 3 && cambiosy == 0) {
_root.clip4_mc.gotoAndStop(2);
} else if (cambiosx == 3 && cambiosy == 1) {
_root.clip6_mc.gotoAndStop(2);
} else if (cambiosx == 0 && cambiosy == 1) {
_root.clip5_mc.gotoAndStop(2);
}
//Y para las coordenadas que faltan:
if (cambiosx == 1 && cambiosy == 1) {
cambiosx = 3;
cambiosy = 1;
_root.clip6_mc.gotoAndStop(2);
}
if (cambiosx == 2 && cambiosy == 1) {
cambiosx = 0;
cambiosy = 1;
_root.clip5_mc.gotoAndStop(2);
}
};
Key.addListener(myListener);
Si tienes algun problema adaptando el código, postea.
Vaya me emocione demasiado pronto no lo consigo, el caso es k en mi escena hay 6 botones y estan uno debajo del otro, todos en linea, y cada uno accede a escena distinta, pues bien partiendo de tu codigo elimino la variable x, puesto que no hay desplazamiento lateral, pero soy muy novato en esto del codigo, trasteo en el tuyo y no hay manera.....
Vale ya lo tengo!! una cosa mas.. si ademas quisieramos que la seleccion de botones pudiese hacerse tambien con el raton sera posible? las dos cosas a la vez? Gracias de nuevo..
Tengo un problema con el flash, el caso es que en la escena 1 todo bien, los botones obedecen al teclado y eso pero uno de estos botones accede a una escena que es igual en estructura a la primera( por lo tanto le meto el mismo codigo) y aqui los botones se descontrolan, a ver si alguien puede ayudarme por favor
hola amigo me interesa este ejemplo, pero una pregunta inserto el swf en una html cuando la subo al browser es necesario darle un click ensima para poder ponerlo a trabajar. hay alguna forma q no tenga que hacer el click , q solo suba la html y pueda utilizarlo rapido con el teclado