Comunidad de diseño web y desarrollo en internet online

as3, reducir lineas de codigo

Citar            
MensajeEscrito el 22 Ago 2009 08:40 pm
buen dia señores
mi pregunta es si puedo reducir estas lineas:

Código ActionScript :

camisa1.addEventListener(MouseEvent.CLICK, presionado);
camisa2.addEventListener(MouseEvent.CLICK, presionado);
camisa3.addEventListener(MouseEvent.CLICK, presionado);
camisa4.addEventListener(MouseEvent.CLICK, presionado);


a colocar un llamado a una funcion dentro de un for y que haga lo mismo

tengo idea y creo q es mas o menos asi, pero no estoy seguro porque lo probe y no me funciono

Código ActionScript :

for(var w2:int = 0; w2<4; w2++)
{
   var s = "camisa" + (w2+1) as MovieClip;
   colocar(s);
}

function colocar(nombre:IEventDispatcher)
{
   nombre.addEventListener(MouseEvent.CLICK, presionado);
}


si alguien me puede dar una mano, le agradezco
pd:todos son mc y camisa1, camisa2, ...., son los nombres de instancia

Por tintin

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ago 2009 09:27 pm
tienes la idea que es lo bueno , aun que seria mas simple esto:

Código ActionScript :

//donde countObjects es numero de MovieClips, name seria en tu caso "camisa"
for(var i:uint = 0; i<countObjects;i++)
{
   this.getChildByName("name"+(i+1)).addEventListener(MouseEvent.CLICK,clickHandler);
}

function clickHandler(evt:MouseEvent):void
{
   //
}


espero no equivocarme ya que ando en ubuntu linux :cool: y no tengo flash aqui en ubuntu

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 23 Ago 2009 08:14 pm
ey muchas gracias jn_Flash, si me funciono.

pero acabo de darme cuenta q no lo necesito, ya q el programa me acaba de ampliar.

de todas formas muchas grax, en algun momento me servira, lo se

Por tintin

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Ago 2009 10:07 pm
var i:int;
for (i=1; i<=4; i++)
{
root["camisa"+i].addEventListener(MouseEvent.CLICK, presionado);
}

Por lucasmoyano

Claber

1960 de clabLevel

22 tutoriales

Genero:Masculino  

Developer

firefox
Citar            
MensajeEscrito el 23 Ago 2009 11:46 pm
root??

gracias por tu respuesta lucasmoyano, pero me la puedes explicar?
como funciona? o como se usa?

Por tintin

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ago 2009 03:09 am
es practicamente lo mismo que te puse yo, cuando usa root va a buscar en todo el time line el objeto camisa1,camisa2, y a estos les asigna el listener :)

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

chrome
Citar            
MensajeEscrito el 24 Ago 2009 03:19 am
uyyy eso si no me lo sabia, gracias por el aporte!!

Por tintin

26 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ago 2009 02:14 pm
Otra alternativa es

var miBoton:MovieClip;

for(var i:uint = 0; i<countObjects;i++)
{
//si los nombres de instancia fueran boton1, boton2, etc.
miBoton = this["boton" + i];
miBoton.addEventListener(MouseEvent.CLICK,clickHandler);
}

function clickHandler(evt:MouseEvent):void
{
//
}

Por beatpeep

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Ago 2009 06:56 am
Y ya que andamos en esas:

Código ActionScript :

var botones:Array=new Array(camisa1,camisa2,camisa3,camisa4);
for each(var el:MovieClip in botones)
      el.addEventListener(MouseEvent.CLICK,clickHandler); 

Por rabi

106 de clabLevel

1 tutorial

 

firefox

 

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