Comunidad de diseño web y desarrollo en internet online

onRelease en for

Citar            
MensajeEscrito el 22 Oct 2007 09:51 pm
hola, la cosa es q tengo una seria de botones a los q les asigno las acciones mediante un for, pero cuando quiero darle acciones onRelease() no puedo;
este es el codigo, y hasta aca todo bien

Código :

var botones:Number = 4;
var nombres:Array = new Array ("", "inicio", "nosotros", "portafolio", "contacto");
for (i = 1; i <= botones; i++) {
   this["boton" + i].etiqueta_txt.text = nombres[i];
   this["boton" + i].onRollOver = function (){
      this._alpha = 75;
   }  
   this["boton" + i].onRollOut = function (){
      this._alpha = 100;
   } 
}


pero por ejemplo quize hacer esto:

Código :

this["boton" + i].onRelease = function (){
      trace(nombres[i])
   } 

y q me mostrara para cada boton su respectiva posiciocn en el array, pero claro, para cuando le doy click a cualquier boton el for ya corrio, i el valor de i es siempre 4; es q necesito q cada boton me muestre un clip distinto y asignarle acciones dif en cada onRelease, y no queria tener q escribir cada boton por separado, se entiende mi problema? Ojala alguien me pueda echar una mano

Por pendejo

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Oct 2007 10:00 pm
en el for, puedes meterle

this["boton" + i].id = i;

Y luego sería:

this["boton" + i].onRelease = function (){
trace(nombres[this.id])
}

Por db

63 de clabLevel



 

opera
Citar            
MensajeEscrito el 22 Oct 2007 11:34 pm
creo q me entendiste, lo q necesito es q cada boton me muestre un clip distinto y asignarle acciones dif en cada onRelease y no queria tener q escribir cada boton por separado

Por pendejo

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Oct 2007 07:15 am
Con el código que te he dicho no tendrias que programarlos uno a uno.

Código :

var botones:Number = 4;

var nombres:Array = new Array ("", "inicio", "nosotros", "portafolio", "contacto");

for (i = 1; i <= botones; i++) {

   this["boton" + i].etiqueta_txt.text = nombres[i];
   this["boton" + i].id = i;

   this["boton" + i].onRollOver = function (){

      this._alpha = 75;

   }  

   this["boton" + i].onRollOut = function (){

      this._alpha = 100;

   } 
   this["boton" + i].onRelease = function (){

      trace(nombres[this.id]);

   }  

}

Un saludo. 

Por db

63 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 Oct 2007 09:50 pm
ok, ya vere como lo hago, gracias por tu interes en responderme ^^

Por pendejo

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Oct 2007 10:38 pm
Lo que dijo db esta correcto mira:

Código :

var botones:Number = 4;

var nombres:Array = new Array ("", "inicio", "nosotros", "portafolio", "contacto");

for (i = 1; i <= botones; i++) {

   this["boton" + i].etiqueta_txt.text = nombres[i];
   this["boton" + i].id = i;

   this["boton" + i].onRollOver = function (){

      this._alpha = 75;

   }  

   this["boton" + i].onRollOut = function (){

      this._alpha = 100;

   } 
   this["boton" + i].onRelease = function (){

      //Aca metes las acciones que queres que tenga cada boton
      //queres cargar un clip diferente para cada boton, mira:
      loadMovie ( this.id + ".swf", 100)
   }  

}

Un saludo. 

Por tomas.piccinini

52 de clabLevel



Genero:Masculino  

firefox

 

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