Comunidad de diseño web y desarrollo en internet online

clonar boton de libreria en as3 + xml

Citar            
MensajeEscrito el 15 Feb 2012 03:07 pm
Hola tengo un boton en la libreria (ya esta configurado para que se pueda reutilizar como una clase)
la idea que tengo es que el boton se clone tantas veces sea señalado por un xml
ya tengo los valores del xml y se como funciona

y este es el action para clonar el boton tengo esto

Código ActionScript :

var posicionX:uint=20;
var posicionY:uint=20;

//puse 3 como ejemplo, pero en realidad el largo es de un xml
for (var i=0; i < 3; i++) {
var boton:Boton=new Boton();
boton.name = "boton"+i;
boton.x=posicionX;
boton.y=posicionY;
addChild(boton);
posicionX+=50;
posicionY+=80;
}


hasta aqui todo va bien pero yo quiero que al presionar un boton muestre los valores que alla presionado provenientes del xml. aun mo llego a eso, pero me quedo atascado aca

Código ActionScript :

boton.btn.addEventListener(MouseEvent.CLICK, fadeIn);

function fadeIn(event:MouseEvent):void
{
   trace(boton.name);
   //inTween = new Tween(pic_mc,"alpha",None.easeNone,0,1,1,true);
}


lo que sucede es que el unico boton que imprime su nombre, es el ultimo boton que se creo
entiendo entonces que boton sigue siendo la misma variable y se cambia el nombre a cada rato
pero la idea mia era que dependiendo del numero que tenia el nombre mostrar el contenido que queria del xml
se que hay un error y no se como solucionarlo, tampoco se si sea la manera correcta de mostrar contenido en pantalla de un xml, alomejor sea mucho mas simple y yo me estoy yendo hacia otro lado
acepto cualquier sugerencia constructiva :)
muchas gracias de antemano

Por jbdr

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Feb 2012 03:53 pm
Te recomiendo que le agregues el evento CLICK dentro del for, ejemplo:
<code>
for (var i=0; i < 3; i++) {
var boton:Boton=new Boton();
boton.addEventListener(MouseEvent.CLICK, fadeIn);
boton.name = "boton"+i;
boton.x=posicionX;
boton.y=posicionY;
addChild(boton);
posicionX+=50;
posicionY+=80;
}
</code>

y en la funcion le haces un trace(e.currentTarget.name);

Manomenos esa sería la idea.

Por jcruz

54 de clabLevel



Genero:Masculino  

Trabajo por comida!

safari
Citar            
MensajeEscrito el 16 Feb 2012 12:32 pm
muuuchas graaacias

esto que me dijiste

Código ActionScript :

var posicionX:uint=20;
var posicionY:uint=20;

for (var i=0; i < 4; i++) {
var boton:Boton=new Boton();
boton.addEventListener(MouseEvent.CLICK, fadeIn);
boton.name = "boton" + i;
boton.x=posicionX;
boton.y=posicionY;
addChild(boton);
posicionX+=50;
posicionY+=80;
}

funciona perfectamente

solo tuve que cambiar el trace que me dijiste :D

en vez de

Código ActionScript :

trace(e.currentTarget.name);

coloque

Código ActionScript :

trace(event.currentTarget.name);

y ahora funciona super bien :)
gracias por tu ayuda

Por jbdr

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Feb 2012 02:44 pm
Eso depende, yo uso siempre e:x.

function fadeIn(e:MouseEvent):void
{ trace("bla bla bla"); }

Por jcruz

54 de clabLevel



Genero:Masculino  

Trabajo por comida!

safari
Citar            
MensajeEscrito el 20 Feb 2012 08:29 pm
Hola, aprovecho este mismo tema para hacer una pregunta de continuación :D
lo que sucede es que no me queda claro de que forma puedo agregarle un campo de texto a mi boton
probe creando new TextField, pero el problema es que el boton queda atras del texto y cuesta trabajo presionarlo; con esto me doy cuenta que no es la manera ams adecuada, lo que necesito es crear un texto dentro de la clase boton que se clona una cantidad X que depende de un xml
no he conseguido hacerlo, si alguien me pudiese explicar, porque he buscado y no entiendo como entro a una propiedad dentro de otra...pero en clases
eso :)
gracias

Por jbdr

1 de clabLevel



 

chrome

 

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