Hola, tengo que hacer una aplicación, que tiene que funcionar tanto por teclado, como por ratón.
Es un .fla dividido en distintos fotogramas y cada uno de estos fotogramas tiene un nº diferente de botones. La cuestión es que con las mismas funciones quiero que me funcionen todas las pantallas y sus respectivos botones. Con el ratón no hay problema, el problema me surge con el teclado:
En el primer fotograma, las teclas funcionan bien pasa de un boton al siguiente con las flechas y cuando le doy al intro va al fotograma que tiene que ir, el problema es que desde el segundo fotograma vuelvo al primero con las flechas y la tecla intro, pero los botones al darle a la flecha me los salta de dos en dos. Os pongo el código:
FOTOGRAMA1: TIENE 6 BOTONES, UNO VA AL FOTOGRAMA2
////////////////////////////////////////
//p1 MENÚ PRINCIPAL********************
/////////////////////////////////////////
stop()
//VARIABLES
but=new Array("",but1,but2,but3,but4,but5,but6)//array que contiene todos los botones de pantalla
tot_but=but.length-1//máximo de botones en esta pantalla
sel=0//boton seleccionado
pantalla="p1"
//**************************************
////////////////////////////////////////
//FUNCIONAMIENTO MEDIANTE EL RATÓN Y PANTALLA TÁCTIL, ACCESO A PANTALLAS
{
for(a=1;a<=tot_but+1;a++){
eval("but"+a).onRollOver=function(){
this.gotoAndStop(2)
}
eval("but"+a).onRollOut=function(){
this.gotoAndStop(1)
}
}
}
//****************************************
but1.onPress=function(){
trace("repetir audio actual")
}
but2.onPress=function(){
gotoAndStop("p6")
}
but3.onPress=function(){
gotoAndStop("p2")
}
but4.onPress=function(){
gotoAndStop("p3")
}
but5.onPress=function(){
gotoAndStop("p4")
}
but6.onPress=function(){
gotoAndStop("p5")
}
////////////////////////////////////////
//FUNCIONAMIENTO MEDIANTE LAS FLECHAS DEL TECLADO Y DE LA TECLA ENTER ACCESO A PANTALLAS
{
var detectortecla:Object = new Object();
detectortecla.onKeyDown = function() {
switch (Key.getCode()) {
case Key.LEFT :
key_left()
break;
case Key.RIGHT :
key_right()
break;
case Key.ENTER:
key_enter()
break;
}
};
Key.addListener(detectortecla);
}
//funcion para poner los botones en el primer estado
function estado_inicial(){
for(a=0;a<=tot_but;a++){
eval(but[a]).gotoAndStop(1)
}
}
//operaciones a realizar al pulsar la tecla derecha
function key_right(){
estado_inicial()
if(sel<tot_but){sel +=1}
eval(but[sel]).gotoAndStop(2)
}
//operaciones a realizar al pulsar la tecla izquierda
function key_left(){
estado_inicial()
if(sel>1){sel -=1}
eval(but[sel]).gotoAndStop(2)
}
//operaciones a realizar al pulsar la tecla enter
function key_enter(){
switch (sel) {
case 1 :
trace("vuelve a sonar el audio")
break;
case 2 :
gotoAndStop("p6")
break;
case 3 :
if (pantalla=="p1"){
gotoAndStop("p2")
}else{
gotoAndStop("p1")
}
break;
case 4 :
gotoAndStop("p3")
break;
case 5 :
gotoAndStop("p4")
break;
case 6 :
gotoAndStop("p5")
break;
}
}
/////////////////////////////////////////////
FOTOGRAMA2 (TIENE TRES BOTONES, UNO VUELVE AL FOTOGRAMA1)
////////////////////////////////////////
//p2 INTRODUCIR CITA MÉDICA**************
/////////////////////////////////////////
stop()
////////////////////////////////////////
//VARIABLES
but=new Array("",but1,but2,but3)//array que contiene todos los botones de pantalla
tot_but=but.length-1//máximo de botones en esta pantalla
sel=0//boton seleccionado
pantalla="p2"
//**************************************
////////////////////////////////////////
//FUNCIONAMIENTO MEDIANTE EL RATÓN Y PANTALLA TÁCTIL, ACCESO A PANTALLAS
{
for(a=1;a<=tot_but+1;a++){
eval("but"+a).onRollOver=function(){
this.gotoAndStop(2)
}
eval("but"+a).onRollOut=function(){
this.gotoAndStop(1)
}
}
}
//****************************************
but1.onPress=function(){
trace("repetir audio actual")
}
but2.onPress=function(){
gotoAndStop("p6")
}
but3.onPress=function(){
gotoAndStop("p1")
}