Comunidad de diseño web y desarrollo en internet online

Esta bien este código?

Citar            
MensajeEscrito el 16 Jul 2006 12:29 am
Hola,

Espero que todos esten bien.
Les explico la duda que tengo. Resulta que tengo seis botones en el stage, llamados btn1, btn2, etc.

Además, en el primer frame escribí esto:

Código :

btn1.onRollOver = function() {
   imgBtn1.gotoAndPlay("n1");
};
btn1.onRollOut = function() {
   imgBtn1.gotoAndPlay("n3");
};
btn2.onRollOver = function() {
   imgBtn2.gotoAndPlay("n1");
};
btn2.onRollOut = function() {
   imgBtn2.gotoAndPlay("n3");
};
btn3.onRollOver = function() {
   imgBtn3.gotoAndPlay("n1");
};
btn3.onRollOut = function() {
   imgBtn3.gotoAndPlay("n3");
};
btn4.onRollOver = function() {
   imgBtn4.gotoAndPlay("n1");
};
btn4.onRollOut = function() {
   imgBtn4.gotoAndPlay("n3");
};
btn5.onRollOver = function() {
   imgBtn5.gotoAndPlay("n1");
};
btn5.onRollOut = function() {
   imgBtn5.gotoAndPlay("n3");
};
btn6.onRollOver = function() {
   imgBtn6.gotoAndPlay("n1");
};
btn6.onRollOut = function() {
   imgBtn6.gotoAndPlay("n3");
};


y funciona tal como quiero. Me pegunté si este código podía reducirlo a unas cuantas líneas y pensé que utilizando una función y un for. Esto es lo que escribí:

Código :

function onrollover_out() {
   for (i=0; i<=6; i++) {
      btn[i].onRollOver = function() {
      imgBtn[i].gotoAndPlay("n1");
      };
      btn[i].onRollOut = function() {
      imgBtn[i].gotoAndPlay("n3");
      };
   }
}
onrollover_out();


Pero no funciona y no sé porque. :(

No sé de programación y por lo tanto no sé si esto que hice en realida es posible que funcione.

Si alguien me da una pista de mi error se lo agradecería...

Muchos saludos.

Por pharpbx

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Jul 2006 05:02 am

pharpbx escribió:


Código :

function onrollover_out() {
   for (i=0; i<=6; i++) {
      btn[i].onRollOver = function() {
      imgBtn[i].gotoAndPlay("n1");
      };
      btn[i].onRollOut = function() {
      imgBtn[i].gotoAndPlay("n3");
      };
   }
}
onrollover_out();




Código :

function onrollover_out() {
   for (i=0; i<=6; i++) {
      this["btn"+i].onRollOver = function() {
      this["imgBtn"+i].gotoAndPlay("n1");
      }
      this["btn"+i].onRollOut = function() {
      this["imgBtn"+i].gotoAndPlay("n3");
      };
   }
}
onrollover_out();

Ensáyalo así
:)

Por J

148 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jul 2006 03:01 pm
J:

Ya lo intenté así y nada. No sé qué es. Quiero entender el código.

En teoría al crear una función y enseguida llamarla, el código contenido en la función se ejecuta a partir de ese momento, luego, el bucle for funciona porque si pongo:

Código :


trace(i);



en el output arroja los números del 0 al 6.

Utilicé tu código e incluso utilicé rutas absolutas y nada.

No sé que mas.

Por pharpbx

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Jul 2006 05:20 pm
Ensaya sin la función.

Código :

   for (i=0; i<=6; i++) {
      this["btn"+i].onRollOver = function() {
      this["imgBtn"+i].gotoAndPlay("n1");
      }
      this["btn"+i].onRollOut = function() {
      this["imgBtn"+i].gotoAndPlay("n3");
      }
   }

A mi me funciona, y si luego necesitas que sea dentro de una función, pasas el código teniendo en cuenta las rutas.
lo que pasa es que cuando llamas la funcion esta se ejecuta una ves.
y como esos eventos no estan activos justo en ese momento, no pasa nada.

Por J

148 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.